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