From 69e879cab37dfb10b26a6dfa7183c4da444e5d86 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Wed, 13 Aug 2014 23:31:23 +0000 Subject: [PATCH] Sanitize input via the control socket a little better. Thanks to Tobias Stoeckmann. --- control.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/control.c b/control.c index e043ccd8..399ee121 100644 --- a/control.c +++ b/control.c @@ -88,18 +88,19 @@ control_handle_data(void *arg) ap = argvp; while (p < e) { argc++; - if ((size_t)argc > sizeof(argvp)) { + if ((size_t)argc >= sizeof(argvp) / sizeof(argvp[0])) { errno = ENOBUFS; return; } a = *ap++ = p; len = strlen(p); p += len + 1; - if (a[len - 1] == '\n') { + if (len && a[len - 1] == '\n') { a[len - 1] = '\0'; break; } } + *ap = NULL; dhcpcd_handleargs(l->ctx, l, argc, argvp); } } -- 2.47.3