strings.h: Ensure ast_str_buffer(…) returns a 0 terminated string.
If a dynamic string is created with an initial length of 0,
`ast_str_buffer(…)` will return an invalid pointer.
This was a secondary discovery when fixing #65.
(cherry picked from commit 31fc2877cb
)
This commit is contained in:
parent
4152f67a0b
commit
02a17926c4
|
@ -753,7 +753,10 @@ char * attribute_pure ast_str_buffer(const struct ast_str *buf),
|
|||
* being returned; eventually, it should become truly const
|
||||
* and only be modified via accessor functions
|
||||
*/
|
||||
return (char *) buf->__AST_STR_STR;
|
||||
if (__builtin_expect(buf->__AST_STR_LEN > 0, 1)) {
|
||||
return (char *) buf->__AST_STR_STR;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue