Actually, I have merged the patch in the next release candidate but I cannot release it in the current form (attached).

Here is the problem: once the patch is in place, the quoted mode of the is_shell_safe() function becomes useless, as the main difference is an increment to skip checking for whitespace (in src/util.c).

In the current form, however, the patch removes bad[0] (which used to be whitespace), and as a result the ++ increment results in quoted strings not being checked for ';'.

This is perhaps not all that dangerous, but still sloppy. I point it out here because I understand that the CYGWIN codebase currently ships the patch.

Input and corrections are welcome.

 Best -F

Federico Lucifredi wrote:
Hello Volker,
 Thank you for passing over the patch, I had misunderstood Bruce's report for 
another issue.

 Patch merged in 1.6f candidate, it will be in the next release.

 Best -Federico


_________________________________________
-- "'Problem' is a bleak word for challenge" - Richard Fish
(Federico L. Lucifredi)-





--

_________________________________________
-- "'Problem' is a bleak word for challenge" - Richard Fish
(Federico L. Lucifredi) - http://www.lucifredi.com
diff -urN -x CYGWIN-PATCHES -x 'aclocal.m4*' -x ltmain.sh -x 'config.*' -x 
depcomp -x install-sh -x missing -x mkinstalldirs -x autom4te.cache -x 
'*compile' -x Makefile.in.in -x 'intltool*.in' -x 'xml-i18n-*.in' -x '*.pyc' -x 
'*.mo' -x '*.gmo' -x ABOUT-NLS -x Makevars.template -x COPYING -x INSTALL -x 
'*.orig' -x '*.rej' -x '*~' -x '*.temp' -x texinfo.tex -x ylwrap -x 
gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x omf.make -x 
xmldocs.make origsrc/man-1.6d/src/man.c src/man-1.6d/src/man.c
--- origsrc/man-1.6d/src/man.c  2006-05-01 22:34:22.000000000 +0200
+++ src/man-1.6d/src/man.c      2006-11-17 11:35:39.049579200 +0100
@@ -781,10 +781,10 @@
             But it changes the meaning of man_file and cat_file,
             if these are not absolute. */
        
-         command = my_xsprintf("(cd %S && %s | %S > %S)", path,
+         command = my_xsprintf("(cd \"%S\" && %s | %S > %S)", path,
                   roff_command, getval("COMPRESS"), cat_file);
      else
-         command = my_xsprintf ("(cd %S && %s > %S)", path,
+         command = my_xsprintf ("(cd \"%S\" && %s > %S)", path,
                   roff_command, cat_file);
 
      /*
@@ -829,9 +829,9 @@
      if (roff_command == NULL)
          return 0;
      if (do_troff)
-         command = my_xsprintf ("(cd %S && %s)", path, roff_command);
+         command = my_xsprintf ("(cd \"%S\" && %s)", path, roff_command);
      else
-         command = my_xsprintf ("(cd %S && %s | %s)", path,
+         command = my_xsprintf ("(cd \"%S\" && %s | %s)", path,
                   roff_command, pager);
 
      return !do_system_command (command, 0);
@@ -940,7 +940,7 @@
          if (roff_command == NULL)
               return 0;
 
-         command = my_xsprintf("(cd %S && %s)", path, roff_command);
+         command = my_xsprintf("(cd \"%S\" && %s)", path, roff_command);
          return !do_system_command (command, 0);
      }
 
diff -urN -x CYGWIN-PATCHES -x 'aclocal.m4*' -x ltmain.sh -x 'config.*' -x 
depcomp -x install-sh -x missing -x mkinstalldirs -x autom4te.cache -x 
'*compile' -x Makefile.in.in -x 'intltool*.in' -x 'xml-i18n-*.in' -x '*.pyc' -x 
'*.mo' -x '*.gmo' -x ABOUT-NLS -x Makevars.template -x COPYING -x INSTALL -x 
'*.orig' -x '*.rej' -x '*~' -x '*.temp' -x texinfo.tex -x ylwrap -x 
gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x omf.make -x 
xmldocs.make origsrc/man-1.6d/src/util.c src/man-1.6d/src/util.c
--- origsrc/man-1.6d/src/util.c 2006-05-01 22:34:49.000000000 +0200
+++ src/man-1.6d/src/util.c     2006-11-17 11:36:52.875736000 +0100
@@ -242,7 +242,7 @@
 
 static int
 is_shell_safe(const char *ss, int quoted) {
-       char *bad = " ;'\\\"<>|";
+       char *bad = ";'\\\"<>|";
        char *p;
 
        if (quoted)
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to