aboutsummaryrefslogtreecommitdiff
path: root/lib/dns/spnego.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/spnego.c')
-rw-r--r--lib/dns/spnego.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/dns/spnego.c b/lib/dns/spnego.c
index 10f6bd706754..13015fa43fbf 100644
--- a/lib/dns/spnego.c
+++ b/lib/dns/spnego.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: spnego.c,v 1.8.118.8 2011-04-04 11:12:21 marka Exp $ */
+/* $Id$ */
/*! \file
* \brief
@@ -948,8 +948,9 @@ der_match_tag_and_length(const unsigned char *p, size_t len,
e = der_get_length(p, len, length_ret, &l);
if (e)
return (e);
- p += l;
+ /* p += l; */
len -= l;
+ POST(len);
ret += l;
if (size)
*size = ret;
@@ -980,6 +981,7 @@ decode_enumerated(const unsigned char *p, size_t len, void *num, size_t *size)
return (e);
p += l;
len -= l;
+ POST(p); POST(len);
ret += l;
if (size)
*size = ret;
@@ -1016,6 +1018,7 @@ decode_octet_string(const unsigned char *p, size_t len,
return (e);
p += l;
len -= l;
+ POST(p); POST(len);
ret += l;
if (size)
*size = ret;
@@ -1052,6 +1055,7 @@ decode_oid(const unsigned char *p, size_t len,
return (e);
p += l;
len -= l;
+ POST(p); POST(len);
ret += l;
if (size)
*size = ret;
@@ -1198,6 +1202,7 @@ der_put_octet_string(unsigned char *p, size_t len,
return (ASN1_OVERFLOW);
p -= data->length;
len -= data->length;
+ POST(len);
memcpy(p + 1, data->data, data->length);
*size = data->length;
return (0);
@@ -1263,6 +1268,7 @@ der_put_length_and_tag(unsigned char *p, size_t len, size_t len_val,
return (e);
p -= l;
len -= l;
+ POST(p); POST(len);
ret += l;
*size = ret;
return (0);
@@ -1287,6 +1293,7 @@ encode_enumerated(unsigned char *p, size_t len, const void *data, size_t *size)
return (e);
p -= l;
len -= l;
+ POST(p); POST(len);
ret += l;
*size = ret;
return (0);
@@ -1311,6 +1318,7 @@ encode_octet_string(unsigned char *p, size_t len,
return (e);
p -= l;
len -= l;
+ POST(p); POST(len);
ret += l;
*size = ret;
return (0);
@@ -1335,6 +1343,7 @@ encode_oid(unsigned char *p, size_t len,
return (e);
p -= l;
len -= l;
+ POST(p); POST(len);
ret += l;
*size = ret;
return (0);