diff options
author | Andrew Bartlett <abartlet@samba.org> | 2007-08-22 06:46:34 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 15:02:25 -0500 |
commit | b39330c4873d4c3923a577e89690fc0e43b0c61a (patch) | |
tree | 882a09a9e2ef446d3662ac542d1bf60fb8e7dfb2 /source4/heimdal/lib/asn1/der_get.c | |
parent | db24e606f10902de49891e32600403274ece16da (diff) | |
download | samba-b39330c4873d4c3923a577e89690fc0e43b0c61a.tar.gz samba-b39330c4873d4c3923a577e89690fc0e43b0c61a.tar.bz2 samba-b39330c4873d4c3923a577e89690fc0e43b0c61a.zip |
r24614: Merge with current lorikeet-heimdal. This brings us one step closer
to an alpha release.
Andrew Bartlett
(This used to be commit 30e02747d511630659c59eafec8d28f58605943b)
Diffstat (limited to 'source4/heimdal/lib/asn1/der_get.c')
-rw-r--r-- | source4/heimdal/lib/asn1/der_get.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/source4/heimdal/lib/asn1/der_get.c b/source4/heimdal/lib/asn1/der_get.c index 3022435b33..f232ce9a29 100644 --- a/source4/heimdal/lib/asn1/der_get.c +++ b/source4/heimdal/lib/asn1/der_get.c @@ -33,7 +33,7 @@ #include "der_locl.h" -RCSID("$Id: der_get.c 20570 2007-04-27 14:06:27Z lha $"); +RCSID("$Id: der_get.c 21369 2007-06-27 10:14:39Z lha $"); #include <version.h> @@ -336,32 +336,25 @@ generalizedtime2time (const char *s, time_t *t) *t = _der_timegm (&tm); return 0; } -#undef timegm static int der_get_time (const unsigned char *p, size_t len, time_t *data, size_t *size) { - heim_octet_string k; char *times; - size_t ret = 0; - size_t l; int e; - e = der_get_octet_string (p, len, &k, &l); - if (e) return e; - p += l; - len -= l; - ret += l; - times = realloc(k.data, k.length + 1); - if (times == NULL){ - free(k.data); + if (len > len + 1 || len == 0) + return ASN1_BAD_LENGTH; + + times = malloc(len + 1); + if (times == NULL) return ENOMEM; - } - times[k.length] = 0; + memcpy(times, p, len); + times[len] = '\0'; e = generalizedtime2time(times, data); free (times); - if(size) *size = ret; + if(size) *size = len; return e; } |