os: silently ignore length modifiers in pnprintf
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 10 Jan 2013 03:24:05 +0000 (13:24 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 17 Jan 2013 07:17:38 +0000 (17:17 +1000)
Until we have support for them, ignore any length modifiers so we don't need
to update all callers.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
os/log.c

index 4820e9a..2139064 100644 (file)
--- a/os/log.c
+++ b/os/log.c
@@ -298,7 +298,13 @@ pnprintf(char *string, size_t size, const char *f, va_list args)
             continue;
         }
 
-        switch (f[++f_idx]) {
+        f_idx++;
+
+        /* silently swallow length modifiers */
+        while (f_idx < f_len && ((f[f_idx] >= '0' && f[f_idx] <= '9') || f[f_idx] == '.'))
+            f_idx++;
+
+        switch (f[f_idx]) {
         case 's':
             string_arg = va_arg(args, char*);
             p_len = strlen_sigsafe(string_arg);