mirror of
https://github.com/ceph/ceph
synced 2025-02-24 11:37:37 +00:00
rgw: add RGWFormatter_Plain allocation to sidestep cranky strlen()
Valgrind complains about an invalid read when we don't pad the allocation, and because it is inlined we can't whitelist it for valgrind. Workaround the warning by just padding our allocations a bit. Fixes: #5346 Backport: cuttlefish Signed-off-by: Sage Weil <sage@inktank.com>
This commit is contained in:
parent
8694d296de
commit
49ff63b175
@ -165,7 +165,7 @@ void RGWFormatter_Plain::write_data(const char *fmt, ...)
|
||||
{
|
||||
#define LARGE_ENOUGH_LEN 128
|
||||
int n, size = LARGE_ENOUGH_LEN;
|
||||
char s[size];
|
||||
char s[size + 8];
|
||||
char *p, *np;
|
||||
bool p_on_stack;
|
||||
va_list ap;
|
||||
@ -187,9 +187,9 @@ void RGWFormatter_Plain::write_data(const char *fmt, ...)
|
||||
else /* glibc 2.0 */
|
||||
size *= 2; /* twice the old size */
|
||||
if (p_on_stack)
|
||||
np = (char *)malloc(size);
|
||||
np = (char *)malloc(size + 8);
|
||||
else
|
||||
np = (char *)realloc(p, size);
|
||||
np = (char *)realloc(p, size + 8);
|
||||
if (!np)
|
||||
goto done_free;
|
||||
p = np;
|
||||
|
Loading…
Reference in New Issue
Block a user