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