(parse_param): Fix off-by-on error in $@ handling. Optimize a bit.
authordrepper <drepper>
Tue, 17 Mar 1998 17:40:24 +0000 (17:40 +0000)
committerdrepper <drepper>
Tue, 17 Mar 1998 17:40:24 +0000 (17:40 +0000)
posix/wordexp.c

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;
     }