From: Juergen Perlinger Date: Thu, 7 Sep 2017 13:47:26 +0000 (+0200) Subject: [Bug 3397] ctl_putstr() asserts that data fits in its buffer X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ade87f9b199d70be53273795d5e74cac3b63220f;p=thirdparty%2Fntp.git [Bug 3397] ctl_putstr() asserts that data fits in its buffer - restore logic of 'ctl_putstr()'/'ctl_putunqstr()' for empty strings (just name, no assign) bk: 59b14deefiGgnvPEOARK92LFg2vsxA --- diff --git a/ntpd/ntp_control.c b/ntpd/ntp_control.c index 74f10cfb6..4bc88644e 100644 --- a/ntpd/ntp_control.c +++ b/ntpd/ntp_control.c @@ -1593,14 +1593,17 @@ ctl_putstr( args[0].buf = tag; args[0].len = strlen(tag); - args[1].buf = "=\""; - args[1].len = 2; - args[2].buf = data; - args[2].len = len; - args[3].buf = "\""; - args[3].len = 1; - - ctl_putdata_ex(args, 4, FALSE); + if (data && len) { + args[1].buf = "=\""; + args[1].len = 2; + args[2].buf = data; + args[2].len = len; + args[3].buf = "\""; + args[3].len = 1; + ctl_putdata_ex(args, 4, FALSE); + } else { + ctl_putdata_ex(args, 1, FALSE); + } } @@ -1624,12 +1627,15 @@ ctl_putunqstr( args[0].buf = tag; args[0].len = strlen(tag); - args[1].buf = "="; - args[1].len = 1; - args[2].buf = data; - args[2].len = len; - - ctl_putdata_ex(args, 3, FALSE); + if (data && len) { + args[1].buf = "="; + args[1].len = 1; + args[2].buf = data; + args[2].len = len; + ctl_putdata_ex(args, 3, FALSE); + } else { + ctl_putdata_ex(args, 1, FALSE); + } }