1From 7f11bde3143b21b40d8225ea1d641e0f83b5a01e Mon Sep 17 00:00:00 2001
2From: Thomas Frauendorfer | Miray Software <tf@miray.de>
3Date: Mon, 15 Feb 2021 13:40:16 +0100
4Subject: [PATCH] kern/misc: Split parse_printf_args() into format parsing and
5 va_list handling
6
7This patch is preparing for a follow up patch which will use
8the format parsing part to compare the arguments in a printf()
9format from an external source against a printf() format with
10expected arguments.
11
12Signed-off-by: Thomas Frauendorfer | Miray Software <tf@miray.de>
13Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
14Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
15---
16 grub-core/kern/misc.c | 11 +++++++++--
17 1 file changed, 9 insertions(+), 2 deletions(-)
18
19diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
20index b02693b..50bf3ee 100644
21--- a/grub-core/kern/misc.c
22+++ b/grub-core/kern/misc.c
23@@ -632,8 +632,7 @@ grub_lltoa (char *str, int c, unsigned long long n)
24 }
25
26 static void
27-parse_printf_args (const char *fmt0, struct printf_args *args,
28-		   va_list args_in)
29+parse_printf_arg_fmt (const char *fmt0, struct printf_args *args)
30 {
31   const char *fmt;
32   char c;
33@@ -789,6 +788,14 @@ parse_printf_args (const char *fmt0, struct printf_args *args,
34 	  break;
35 	}
36     }
37+}
38+
39+static void
40+parse_printf_args (const char *fmt0, struct printf_args *args, va_list args_in)
41+{
42+  grub_size_t n;
43+
44+  parse_printf_arg_fmt (fmt0, args);
45
46   for (n = 0; n < args->count; n++)
47     switch (args->ptr[n].type)
48--
492.14.2
50
51