summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>2006-12-30 06:09:25 +0000
committerEzra Peisach <epeisach@mit.edu>2006-12-30 06:09:25 +0000
commita2402f9d816014f3df88557d3cfb52005e90b8fb (patch)
tree8527f8419dfa9fec719431236860422efd52dad1 /src
parenta2682e413397c05bc681b84e138ea8062f3031ba (diff)
downloadkrb5-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.c4
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)