2012-03-01 Pedro Alves <palves@redhat.com>
[deliverable/binutils-gdb.git] / gdb / environ.c
index 5bc9140e3f160107c0b37c58d9e0097cca2faf02..33426eb90bcb6535d874cdbbc69b9af2725a1339 100644 (file)
@@ -1,7 +1,7 @@
 /* environ.c -- library for manipulating environments for GNU.
 
-   Copyright (C) 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2005
-   2003, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1986, 1989-1995, 2000, 2003, 2005, 2007-2012 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
@@ -49,6 +49,7 @@ free_environ (struct gdb_environ *e)
   while (*vector)
     xfree (*vector++);
 
+  xfree (e->vector);
   xfree (e);
 }
 
@@ -80,6 +81,7 @@ init_environ (struct gdb_environ *e)
     {
       int len = strlen (e->vector[i]);
       char *new = (char *) xmalloc (len + 1);
+
       memcpy (new, e->vector[i], len + 1);
       e->vector[i] = new;
     }
@@ -173,7 +175,7 @@ unset_in_environ (struct gdb_environ *e, char *var)
          xfree (s);
          /* Walk through the vector, shuffling args down by one, including
             the NULL terminator.  Can't use memcpy() here since the regions
-            overlap, and memmove() might not be available. */
+            overlap, and memmove() might not be available.  */
          while ((vector[0] = vector[1]) != NULL)
            {
              vector++;
This page took 0.02497 seconds and 4 git commands to generate.