2010-12-23 Yao Qi <yao@codesourcery.com>
[deliverable/binutils-gdb.git] / gdb / environ.c
index 3469f88e7f7248e4489e18ec38d259f39f2d27b9..ebd6431801e86c88239895fa3789429d86916b65 100644 (file)
@@ -1,11 +1,11 @@
 /* environ.c -- library for manipulating environments for GNU.
 
 /* environ.c -- library for manipulating environments for GNU.
 
-   Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2005
-   2003 Free Software Foundation, Inc.
+   Copyright (C) 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2005
+   2003, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -14,9 +14,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define min(a, b) ((a) < (b) ? (a) : (b))
 #define max(a, b) ((a) > (b) ? (a) : (b))
 
 #define min(a, b) ((a) < (b) ? (a) : (b))
 #define max(a, b) ((a) > (b) ? (a) : (b))
@@ -51,6 +49,7 @@ free_environ (struct gdb_environ *e)
   while (*vector)
     xfree (*vector++);
 
   while (*vector)
     xfree (*vector++);
 
+  xfree (e->vector);
   xfree (e);
 }
 
   xfree (e);
 }
 
@@ -82,6 +81,7 @@ init_environ (struct gdb_environ *e)
     {
       int len = strlen (e->vector[i]);
       char *new = (char *) xmalloc (len + 1);
     {
       int len = strlen (e->vector[i]);
       char *new = (char *) xmalloc (len + 1);
+
       memcpy (new, e->vector[i], len + 1);
       e->vector[i] = new;
     }
       memcpy (new, e->vector[i], len + 1);
       e->vector[i] = new;
     }
@@ -170,7 +170,7 @@ unset_in_environ (struct gdb_environ *e, char *var)
 
   for (; (s = *vector) != NULL; vector++)
     {
 
   for (; (s = *vector) != NULL; vector++)
     {
-      if (DEPRECATED_STREQN (s, var, len) && s[len] == '=')
+      if (strncmp (s, var, len) == 0 && s[len] == '=')
        {
          xfree (s);
          /* Walk through the vector, shuffling args down by one, including
        {
          xfree (s);
          /* Walk through the vector, shuffling args down by one, including
This page took 0.024917 seconds and 4 git commands to generate.