Format string bug in WMenuParserError
authorRodolfo García Peñas (kix) <kix@kix.es>
Mon, 16 Jul 2012 18:27:10 +0000 (16 20:27 +0200)
committerCarlos R. Mafra <crmafra@gmail.com>
Mon, 16 Jul 2012 21:45:25 +0000 (16 22:45 +0100)
There is a format string (FS) bug in the function WMenuParserError.

It is the tipical FS bug, like printf(a) instead of printf("%s", a);

See http://en.wikipedia.org/wiki/Uncontrolled_format_string for more info.

WINGs/menuparser.c

index 7659817..96555cd 100644 (file)
@@ -102,7 +102,7 @@ void WMenuParserError(WMenuParser parser, const char *msg, ...)
        va_start(args, msg);
        vsnprintf(buf, sizeof(buf), msg, args);
        va_end(args);
-       __wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING, buf);
+       __wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING, "%s", buf);
 
        for (parent = parser->parent_file; parent != NULL; parent = parent->parent_file)
                __wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING,