(der_get_heim_integer): Add more checks

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17679 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-06-22 03:54:50 +00:00
parent d4e0968cea
commit 9e5f91e48b

View File

@@ -250,10 +250,17 @@ der_get_heim_integer (const unsigned char *p, size_t len,
if (p[0] == 0xff) {
p++;
data->length--;
if (data->length == 0) {
if (size)
*size = 0;
return ASN1_BAD_LENGTH;
}
}
data->data = malloc(data->length);
if (data->data == NULL) {
data->length = 0;
if (size)
*size = 0;
return ENOMEM;
}
q = &((unsigned char*)data->data)[data->length - 1];
@@ -276,6 +283,8 @@ der_get_heim_integer (const unsigned char *p, size_t len,
data->data = malloc(data->length);
if (data->data == NULL && data->length != 0) {
data->length = 0;
if (size)
*size = 0;
return ENOMEM;
}
memcpy(data->data, p, data->length);