[HEIMDAL-646] malloc(0) checks for AIX

This commit is contained in:
Love Hornquist Astrand
2009-10-11 16:25:42 -07:00
parent 102cd04b0d
commit 84111cb8e1

View File

@@ -305,7 +305,7 @@ der_get_octet_string_ber (const unsigned char *p, size_t len,
void *ptr; void *ptr;
ptr = realloc(data->data, data->length + datalen); ptr = realloc(data->data, data->length + datalen);
if (ptr == NULL) { if (ptr == NULL && data->length + datalen != 0) {
e = ENOMEM; e = ENOMEM;
goto out; goto out;
} }
@@ -354,21 +354,23 @@ der_get_heim_integer (const unsigned char *p, size_t len,
p++; p++;
data->length--; data->length--;
} }
data->data = malloc(data->length); if (data->length) {
if (data->data == NULL) { data->data = malloc(data->length);
data->length = 0; if (data->data == NULL) {
if (size) data->length = 0;
*size = 0; if (size)
return ENOMEM; *size = 0;
} return ENOMEM;
q = &((unsigned char*)data->data)[data->length - 1]; }
p += data->length - 1; q = &((unsigned char*)data->data)[data->length - 1];
while (q >= (unsigned char*)data->data) { p += data->length - 1;
*q = *p ^ 0xff; while (q >= (unsigned char*)data->data) {
if (carry) *q = *p ^ 0xff;
carry = !++*q; if (carry)
p--; carry = !++*q;
q--; p--;
q--;
}
} }
} else { } else {
data->negative = 0; data->negative = 0;