Browse code

add support for %lu in argv_printf and prevent ASSERT

%lu is not supported by our tiny argv_printf implementation, therefore
it will trigger an ASSERT() when parsing it at route.c:1638.

Add support for '%lu' in argv_print() and prevent the ASSERT from being
triggered.

Signed-off-by: Antonio Quartulli <a@unstable.cc>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20180623021147.22792-1-a@unstable.cc>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg17115.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>

Antonio Quartulli authored on 2018/06/23 11:11:47
Showing 1 changed files
... ...
@@ -251,6 +251,13 @@ argv_printf_arglist(struct argv *a, const char *format, va_list arglist)
251 251
                 openvpn_snprintf(numstr, sizeof(numstr), "%u", va_arg(arglist, unsigned int));
252 252
                 argv_append(a, string_alloc(numstr, NULL));
253 253
             }
254
+            else if (!strcmp(term, "%lu"))
255
+            {
256
+                char numstr[64];
257
+                openvpn_snprintf(numstr, sizeof(numstr), "%lu",
258
+                                 va_arg(arglist, unsigned long));
259
+                argv_append(a, string_alloc(numstr, NULL));
260
+            }
254 261
             else if (!strcmp(term, "%s/%d"))
255 262
             {
256 263
                 char numstr[64];