grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] '.' causes wildcard expansion


From: Robert Mabee
Subject: [PATCH] '.' causes wildcard expansion
Date: Mon, 11 Jun 2012 02:56:20 -0400
User-agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120430 Thunderbird/12.0.1

Wildcard expansion in device name activates my floppy drive (PC BIOS). I noticed that
    echo .
also did so in 1.99, though there should be no expansion. Current source fixes that case but
    echo (.
still runs the floppy.  split_path shouldn't treat . as a wildcard.

I believe the regcomp call in make_regex is incorrect because the constant used is intended only for a lower-level interface. The defines are more than a little confusing.

=== modified file 'ChangeLog'
--- old/ChangeLog    2012-06-09 17:58:38 +0000
+++ new/ChangeLog    2012-06-11 06:32:58 +0000
@@ -1,3 +1,8 @@
+2012-06-11  Bob Mabee <address@hidden>
+
+    * commands/wildcard.c (split_path): . is not a wildcard.
+    * (make_regex): RE_SYNTAX_GNU_AWK is not valid for regcomp cflags.
+
 2012-06-09  Vladimir Serbinenko <address@hidden>

     * tests/grub_script_expansion.in: Explicitly tell grep that we handle

=== modified file 'grub-core/commands/wildcard.c'
--- old/grub-core/commands/wildcard.c    2012-06-08 20:54:21 +0000
+++ new/grub-core/commands/wildcard.c    2012-06-10 23:16:02 +0000
@@ -153,7 +153,7 @@
   buffer[i] = '\0';
   grub_dprintf ("expand", "Regexp is %s\n", buffer);

-  if (regcomp (regexp, buffer, RE_SYNTAX_GNU_AWK))
+  if (regcomp (regexp, buffer, REG_EXTENDED))
     {
       grub_free (buffer);
       return 1;
@@ -181,7 +181,7 @@
       if (ch == '\\' && end[1])
     end++;

-      else if (isregexop (ch))
+      else if (ch == '*')    /* only wildcard currently implemented */
     regex = 1;

       else if (ch == '/' && ! regex)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]