From e38d3a004195f33c5c04fe7c04db5d66c53241bc Mon Sep 17 00:00:00 2001
From: Antonio Quartulli
Date: Sat, 23 Jun 2018 10:11:47 +0800
Subject: [PATCH] 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
Acked-by: Gert Doering
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
---
src/openvpn/argv.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/openvpn/argv.c b/src/openvpn/argv.c
index dec7e3bfa..9100a196c 100644
--- a/src/openvpn/argv.c
+++ b/src/openvpn/argv.c
@@ -251,6 +251,13 @@ argv_printf_arglist(struct argv *a, const char *format, va_list arglist)
openvpn_snprintf(numstr, sizeof(numstr), "%u", va_arg(arglist, unsigned int));
argv_append(a, string_alloc(numstr, NULL));
}
+ else if (!strcmp(term, "%lu"))
+ {
+ char numstr[64];
+ openvpn_snprintf(numstr, sizeof(numstr), "%lu",
+ va_arg(arglist, unsigned long));
+ argv_append(a, string_alloc(numstr, NULL));
+ }
else if (!strcmp(term, "%s/%d"))
{
char numstr[64];
--
2.47.2