(der_get_time): avoid using wrapping of octet_string and realloc.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21369 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -341,26 +341,20 @@ static int
|
|||||||
der_get_time (const unsigned char *p, size_t len,
|
der_get_time (const unsigned char *p, size_t len,
|
||||||
time_t *data, size_t *size)
|
time_t *data, size_t *size)
|
||||||
{
|
{
|
||||||
heim_octet_string k;
|
|
||||||
char *times;
|
char *times;
|
||||||
size_t ret = 0;
|
|
||||||
size_t l;
|
|
||||||
int e;
|
int e;
|
||||||
|
|
||||||
e = der_get_octet_string (p, len, &k, &l);
|
if (len > len + 1 || len == 0)
|
||||||
if (e) return e;
|
return ASN1_BAD_LENGTH;
|
||||||
p += l;
|
|
||||||
len -= l;
|
times = malloc(len + 1);
|
||||||
ret += l;
|
if (times == NULL)
|
||||||
times = realloc(k.data, k.length + 1);
|
|
||||||
if (times == NULL){
|
|
||||||
free(k.data);
|
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
}
|
memcpy(times, p, len);
|
||||||
times[k.length] = 0;
|
times[len] = '\0';
|
||||||
e = generalizedtime2time(times, data);
|
e = generalizedtime2time(times, data);
|
||||||
free (times);
|
free (times);
|
||||||
if(size) *size = ret;
|
if(size) *size = len;
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user