summaryrefslogtreecommitdiff
path: root/source4/heimdal/lib/gssapi/init_sec_context.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2005-10-25 13:43:37 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:45:15 -0500
commit4019064c5d866015a0d78b32dd051ec1dacf8ebf (patch)
treef904d6178cd36f357e969c40ea2336d1ebcbb22e /source4/heimdal/lib/gssapi/init_sec_context.c
parentd27ffc27ffd5ab57b5e0124203a08a3bb70aa1e1 (diff)
downloadsamba-4019064c5d866015a0d78b32dd051ec1dacf8ebf.tar.gz
samba-4019064c5d866015a0d78b32dd051ec1dacf8ebf.tar.bz2
samba-4019064c5d866015a0d78b32dd051ec1dacf8ebf.zip
r11294: Update Heimdal in Samba4 to lorikeet-heimdal (which is in turn updated
to CVS of 2005-10-24). Andrew Bartlett (This used to be commit 939d4f340feaad15d0a6a5da79feba2b2558f174)
Diffstat (limited to 'source4/heimdal/lib/gssapi/init_sec_context.c')
-rw-r--r--source4/heimdal/lib/gssapi/init_sec_context.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/source4/heimdal/lib/gssapi/init_sec_context.c b/source4/heimdal/lib/gssapi/init_sec_context.c
index 5c6c6a0f8e..93e8d44c86 100644
--- a/source4/heimdal/lib/gssapi/init_sec_context.c
+++ b/source4/heimdal/lib/gssapi/init_sec_context.c
@@ -33,7 +33,7 @@
#include "gssapi_locl.h"
-RCSID("$Id: init_sec_context.c,v 1.59 2005/08/11 10:47:25 lha Exp $");
+RCSID("$Id: init_sec_context.c,v 1.60 2005/10/12 07:25:18 lha Exp $");
/*
* copy the addresses from `input_chan_bindings' (if any) to
@@ -848,16 +848,23 @@ spnego_reply
ret = der_match_tag_and_length((const char *)indata.data,
indata.length,
ASN1_C_CONTEXT, CONS, 1, &len, &taglen);
- if (ret)
- return ret;
+ if (ret) {
+ gssapi_krb5_set_status("Failed to decode NegToken choice");
+ *minor_status = ret;
+ return GSS_S_FAILURE;
+ }
- if(len > indata.length - taglen)
- return ASN1_OVERRUN;
+ if(len > indata.length - taglen) {
+ gssapi_krb5_set_status("Buffer overrun in NegToken choice");
+ *minor_status = ASN1_OVERRUN;
+ return GSS_S_FAILURE;
+ }
ret = decode_NegTokenTarg((const char *)indata.data + taglen,
len, &targ, NULL);
if (ret) {
- *minor_status = ENOMEM;
+ gssapi_krb5_set_status("Failed to decode NegTokenTarg");
+ *minor_status = ret;
return GSS_S_FAILURE;
}