Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 17 Mar 1998 17:40:39 +0000 (17:40 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 17 Mar 1998 17:40:39 +0000 (17:40 +0000)
1998-03-17  Ulrich Drepper  <drepper@cygnus.com>

* posix/wordexp.c (parse_param): Fix off-by-on error in $@
handling.  Optimize a bit.

ChangeLog
NEWS
posix/wordexp.c

index 87a4baf..a6d6299 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+1998-03-17  Ulrich Drepper  <drepper@cygnus.com>
+
+       * posix/wordexp.c (parse_param): Fix off-by-on error in $@
+       handling.  Optimize a bit.
+
 1998-03-18 00:25  Tim Waugh  <tim@cyberelk.demon.co.uk>
 
        * posix/wordexp.c (parse_comm): Allow quoting inside $(...).
diff --git a/NEWS b/NEWS
index 9a86da0..6e0c6b5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -32,8 +32,8 @@ Version 2.1
 
 * scanf recognizes the %a and %A format for scanning floating point numbers.
 
-* the new header <inttypes.h> from ISO C 9X provides information and
-  interfaces for the available integer types.
+* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
+  information and interfaces for the available integer types.
 
 * the new header <complex.h> contains definitions of the complex math
   functions from ISO C 9X.
@@ -59,6 +59,8 @@ Version 2.1
   (nscd).
 
 * Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
+
+* Mark Kettenis provided a Hesiod NSS module.
 \f
 Version 2.0.5
 
index 54f830c..51cdc93 100644 (file)
@@ -1366,17 +1366,21 @@ envsubst:
          if (*word == NULL)
            return WRDE_NOSPACE;
 
-         for (p = 1; __libc_argv[p]; p++)
+         for (p = 2; __libc_argv[p]; p++)
            {
+             size_t len;
+             char *s;
              if (w_addword (pwordexp, *word))
                return WRDE_NOSPACE;
-             *word = __strdup (__libc_argv[p]);
-             *max_length = *word_length = strlen (*word);
-             if (*word == NULL)
+             len = strlen (__libc_argv[p]) + 1;
+             s = malloc (len);
+             if (s == NULL)
                return WRDE_NOSPACE;
+             *word = memcpy (s, __libc_argv[p], len);
+             *max_length = *word_length = len;
            }
        }
-      
+
       return 0;
     }