buf2hexstr: properly deal with empty string
It wrote before the start of the string found by afl Reviewed-by: Richard Levitte <levitte@openssl.org> MR: #2994
This commit is contained in:
parent
28bd8e945f
commit
01238aec40
2 changed files with 7 additions and 2 deletions
|
@ -198,7 +198,12 @@ char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len)
|
|||
const unsigned char *p;
|
||||
int i;
|
||||
|
||||
if ((tmp = OPENSSL_malloc(len * 3 + 1)) == NULL) {
|
||||
if (len == 0)
|
||||
{
|
||||
return OPENSSL_zalloc(1);
|
||||
}
|
||||
|
||||
if ((tmp = OPENSSL_malloc(len * 3)) == NULL) {
|
||||
CRYPTOerr(CRYPTO_F_OPENSSL_BUF2HEXSTR, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -124,7 +124,7 @@ An odd number of hex digits is an error.
|
|||
|
||||
OPENSSL_buf2hexstr() takes the specified buffer and length, and returns
|
||||
a hex string for value, or NULL on error.
|
||||
B<Buffer> cannot be NULL; if B<len> is NULL an empty string is returned.
|
||||
B<Buffer> cannot be NULL; if B<len> is 0 an empty string is returned.
|
||||
|
||||
OPENSSL_hexchar2int() converts a character to the hexadecimal equivalent,
|
||||
or returns -1 on error.
|
||||
|
|
Loading…
Reference in a new issue