utils.c: NULL terminate ast_base64decode_string.
With the addition of STIR/SHAKEN, the function ast_base64decode_string was added for convenience since there is a lot of converting done during the STIR/SHAKEN process. This function returned the decoded string for you, but did not NULL terminate it, causing some issues (specifically with MALLOC_DEBUG). Now, the returned string is NULL terminated, and the documentation has been updated to reflect this. Change-Id: Icdd7d05b323b0c47ff6ed43492937a03641bdcf5
This commit is contained in:
parent
802aa97fa0
commit
769a9611e7
|
@ -267,7 +267,7 @@ int ast_base64decode(unsigned char *dst, const char *src, int max);
|
|||
* \brief Same as ast_base64decode, but does the math for you and returns
|
||||
* a decoded string
|
||||
*
|
||||
* \note The returned string will need to be freed later
|
||||
* \note The returned string will need to be freed later and IS NULL terminated
|
||||
*
|
||||
* \param src The source buffer
|
||||
*
|
||||
|
|
|
@ -331,12 +331,13 @@ char *ast_base64decode_string(const char *src)
|
|||
}
|
||||
|
||||
decoded_len = (encoded_len / 4 * 3) - padding;
|
||||
decoded_string = ast_calloc(1, decoded_len);
|
||||
decoded_string = ast_malloc(decoded_len + 1);
|
||||
if (!decoded_string) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ast_base64decode(decoded_string, src, decoded_len);
|
||||
decoded_string[decoded_len] = '\0';
|
||||
|
||||
return (char *)decoded_string;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue