]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
authorJuergen Perlinger <perlinger@ntp.org>
Thu, 7 Sep 2017 13:47:26 +0000 (15:47 +0200)
committerJuergen Perlinger <perlinger@ntp.org>
Thu, 7 Sep 2017 13:47:26 +0000 (15:47 +0200)
 - restore logic of 'ctl_putstr()'/'ctl_putunqstr()' for empty strings (just name, no assign)

bk: 59b14deefiGgnvPEOARK92LFg2vsxA

ntpd/ntp_control.c

index 74f10cfb674cde3acf60ed5b461a77e813a37d2b..4bc88644e8923271415cc53322561ede229b3143 100644 (file)
@@ -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);
+       }
 }