Am 15.04.2013 21:29, schrieb Zbigniew Jędrzejewski-Szmek: > On Mon, Apr 15, 2013 at 06:41:52PM +0200, [email protected] wrote: >> From: Harald Hoyer <[email protected]> >> >> use stack_size_guess() to get rid of LINE_MAX >> --- >> src/journal/journal-send.c | 99 >> +++++++++++++++++++++++++++++++---------- >> src/journal/test-journal-send.c | 92 +++++++++++++++++++++++++++++++++----- >> 2 files changed, 156 insertions(+), 35 deletions(-) >> >> diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c >> index 4b9109a..2ff04b4 100644 >> --- a/src/journal/journal-send.c >> +++ b/src/journal/journal-send.c >> @@ -26,6 +26,7 @@ >> #include <unistd.h> >> #include <fcntl.h> >> #include <printf.h> >> +#include <sys/resource.h> >> >> #define SD_JOURNAL_SUPPRESS_LOCATION >> >> @@ -35,15 +36,17 @@ >> >> #define SNDBUF_SIZE (8*1024*1024) >> >> -#define ALLOCA_CODE_FUNC(f, func) \ >> - do { \ >> - size_t _fl; \ >> - const char *_func = (func); \ >> - char **_f = &(f); \ >> - _fl = strlen(_func) + 1; \ >> - *_f = alloca(_fl + 10); \ >> - memcpy(*_f, "CODE_FUNC=", 10); \ >> - memcpy(*_f + 10, _func, _fl); \ >> +#define ALLOCA_CODE_FUNC(f, func) \ >> + do { \ >> + size_t _fl; \ >> + const char *_func = (func); \ >> + char **_f = &(f); \ >> + _fl = strlen(_func) + 1; \ >> + if (stack_size_guess() < (_fl + 10)) \ > Can't _fl + 10 overflow (on 32 bit)?
You mean signed vs unsigned? _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
