This indirectly fixes a dereference of a NULL pointer in man.c when
compiling under Cygwin by setting the proper PIPE_USE_FORK define for
Cygwin.
There still seems to be a NULL dereference in a !PIPE_USE_FORK path
around line 340 in man.c:
char *cmdline = xmalloc (strlen (formatter_args[0])
+ strlen (manpage_pagename)
+ (arg_index > 2 ? strlen (manpage_section) : 0)
+ 3);
The SEGV is just an FYI. I believe that the Cygwin fix is trivially
correct and hope you'll consider applying it.
cgf
2009-03-27 Christopher Faylor <[email protected]>
* system.h: Avoid erroneously redefining PIPE_USE_FORK when compiling
for Cygwin.
--- system.h.orig 2008-07-26 18:54:54.000000000 -0400
+++ system.h 2009-03-27 11:05:17.343135205 -0400
@@ -187,6 +187,7 @@
# define DEFAULT_TMPDIR "c:/"
# define PATH_SEP ";"
# define STRIP_DOT_EXE 1
+# define PIPE_USE_FORK 0
# endif /* O_BINARY && !__CYGWIN__ */
/* Back to any O_BINARY system. */
# define FILENAME_CMP mbscasecmp
@@ -196,7 +197,6 @@
# define HAVE_DRIVE(n) ((n)[0] && (n)[1] == ':')
# define IS_SLASH(c) ((c) == '/' || (c) == '\\')
# define IS_ABSOLUTE(n) (IS_SLASH((n)[0]) || HAVE_DRIVE(n))
-# define PIPE_USE_FORK 0
# define SET_BINARY(f) do {if (!isatty(f)) setmode(f,O_BINARY);} while(0)
#else /* not O_BINARY, i.e., Unix */