changeset 5677:922607d52fba HEAD

printf_string_fix_format() now panics if %n modifier is found.
author Timo Sirainen <tss@iki.fi>
date Mon, 11 Jun 2007 01:00:07 +0300
parents 698da4fededa
children 2cde91fb7283
files src/lib/strfuncs.c
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/strfuncs.c	Sun Jun 10 22:54:47 2007 +0300
+++ b/src/lib/strfuncs.c	Mon Jun 11 01:00:07 2007 +0300
@@ -62,8 +62,16 @@
 	const char *p;
 
 	for (p = fmt; *p != '\0'; p++) {
-		if (*p == '%' && p[1] == 'm')
-			return fix_format_real(fmt, p);
+		if (*p++ == '%') {
+			switch (*p) {
+			case 'n':
+				i_panic("%%n modifier used");
+			case 'm':
+				return fix_format_real(fmt, p-1);
+			case '\0':
+				i_panic("%% modifier missing");
+			}
+		}
 	}
 
 	return fmt;