Menu parser: fix possible infinite loop when loading menu file
authorChristophe CURIS <christophe.curis@free.fr>
Tue, 17 Jul 2012 21:43:37 +0000 (17 23:43 +0200)
committerCarlos R. Mafra <crmafra@gmail.com>
Thu, 19 Jul 2012 10:23:29 +0000 (19 11:23 +0100)
When a #include is used, the file is searched in many places; when
the file was searched in the ':'-separated list of path it could
led to infinite loop if the list contained more than one path and
that the file was not found in the first path, the ':' separator
was not properly passed over.

WINGs/menuparser.c

index 96555cd..b196a00 100644 (file)
@@ -493,6 +493,9 @@ static Bool menu_parser_include_file(WMenuParser parser)
 
                                fh = fopen(fullfilename, "rb");
                                if (fh != NULL) goto found_valid_file;
+
+                               if (*src == ':')
+                                       src++;
                        }
                }
                WMenuParserError(parser, _("could not find file \"%s\" for include"), req_filename);