summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d491da5)
This prevents log_object_internalv from corrupting the stack.
Closes #6147.
Many thanks to Walter Doekes for the code review.
PROTECT_ERRNO;
char *buffer, *b;
PROTECT_ERRNO;
char *buffer, *b;
if (error < 0)
error = -error;
if (error < 0)
error = -error;
size_t n;
n = strlen(object);
size_t n;
n = strlen(object);
- l = n + 2 + LINE_MAX;
-
- buffer = newa(char, l);
+ buffer = newa(char, n + 2 + LINE_MAX);
b = stpcpy(stpcpy(buffer, object), ": ");
b = stpcpy(stpcpy(buffer, object), ": ");
- } else {
- l = LINE_MAX;
- b = buffer = newa(char, l);
- }
+ } else
+ b = buffer = newa(char, LINE_MAX);
- vsnprintf(b, l, format, ap);
+ vsnprintf(b, LINE_MAX, format, ap);
return log_dispatch_internal(level, error, file, line, func,
object_field, object, extra_field, extra, buffer);
return log_dispatch_internal(level, error, file, line, func,
object_field, object, extra_field, extra, buffer);