bug-make
[Top][All Lists]
Advanced

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

bug in make-3.79.1


From: Steven Dirkse
Subject: bug in make-3.79.1
Date: Mon, 23 Sep 2002 15:45:18 -0400

Hello,

I believe there is a bug in 3.79.1.  It occurs late in function
try_variable_definition, where the code

  v->append = append;

is executed.  For a build with WINDOWS32 defined the struct v was not
initialized in some cases (specifically, when processing a line of the
form SHELL = /bin/bash), and the program crashed intermittently,
presumably when accessing the code above.  Who knows what damage
occurred when it ran but didn't crash.

My fix is simple: I initialize

  struct variable *v = NULL;

I add an else clause to the code that sets v for Windows32, and I check
v != NULL before setting v->append.  The code below is near the end of
the function in question and the 4 lines I added there are marked with
"new" below.

#ifdef WINDOWS32
  if ((origin == o_file || origin == o_override)
      && strcmp (expanded_name, "SHELL") == 0) {
    extern char* default_shell;

    /*
     * Call shell locator function. If it returns TRUE, then
         * set no_default_sh_exe to indicate sh was found and
     * set new value for SHELL variable.
         */
    if (find_and_set_default_shell(value)) {
       v = define_variable_loc (expanded_name, strlen (expanded_name),
                                default_shell, origin, flavor ==
f_recursive,
                                flocp);
       no_default_sh_exe = 0;
    }
new    else
new      v = lookup_variable (expanded_name, strlen (expanded_name));
  }
  else
#endif

  v = define_variable_loc (expanded_name, strlen (expanded_name), value,
                           origin, flavor == f_recursive, flocp);

new  if (v != NULL)
new    v->append = append;


I noticed the bug is also present in the cygwin modifications to make,
so I CCed them.

-- 
Steven Dirkse, Ph.D.    GAMS Development Corporation
1217 Potomac St. NW             Washington DC  20007
Voice: (202)342-0180              Fax: (202)342-0181
mailto:address@hidden          http://www.gams.com




reply via email to

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