diff options
| author | Ezra Peisach <epeisach@mit.edu> | 2006-12-30 06:09:25 +0000 |
|---|---|---|
| committer | Ezra Peisach <epeisach@mit.edu> | 2006-12-30 06:09:25 +0000 |
| commit | a2402f9d816014f3df88557d3cfb52005e90b8fb (patch) | |
| tree | 8527f8419dfa9fec719431236860422efd52dad1 /src | |
| parent | a2682e413397c05bc681b84e138ea8062f3031ba (diff) | |
| download | krb5-a2402f9d816014f3df88557d3cfb52005e90b8fb.tar.gz krb5-a2402f9d816014f3df88557d3cfb52005e90b8fb.tar.xz krb5-a2402f9d816014f3df88557d3cfb52005e90b8fb.zip | |
If gss_krb5int_unseal_token_v3() unwraps a message of length 0 - free
memory and return in message_buffer a NULL pointer for value. This
is consistant with gss_release_buffer in the mechglue implementation in which
memory is only freed if the buffer length != 0.
ticket: 5233
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19022 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/gssapi/krb5/k5sealv3.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/gssapi/krb5/k5sealv3.c b/src/lib/gssapi/krb5/k5sealv3.c index d83ac8593c..2c084865e3 100644 --- a/src/lib/gssapi/krb5/k5sealv3.c +++ b/src/lib/gssapi/krb5/k5sealv3.c @@ -418,6 +418,10 @@ gss_krb5int_unseal_token_v3(krb5_context *contextptr, } message_buffer->value = plain.data; message_buffer->length = plain.length - ec - 16; + if(message_buffer->length == 0) { + free(message_buffer->value); + message_buffer->value = NULL; + } } else { /* no confidentiality */ if (conf_state) |
