]> err.no Git - dpkg/commitdiff
Do not use strdup for execvp arguments
authorGuillem Jover <guillem@debian.org>
Tue, 1 Jan 2008 03:29:13 +0000 (05:29 +0200)
committerGuillem Jover <guillem@debian.org>
Tue, 1 Jan 2008 03:29:13 +0000 (05:29 +0200)
Closes: #379027
ChangeLog
debian/changelog
src/archives.c

index 8e06afacc741a3c7bd7ac5c1011c25cc8527afd0..3d74ecf0d65983af0e0af08e49e2178d19ea4a29 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-01  Guillem Jover  <guillem@debian.org>
+
+       * src/archives.c (archivefiles): Remove pointless strdup for execvp
+       arguments.
+
 2008-01-01  Ian Zimmerman  <itz@buug.org>
 
        * scripts/install-info.pl: Ignore wrapped lines when matching
index 141ceaf48c4fe3e7be7236231e6bef90e15804c1..38390005b0cb3b2c9e83717d5a049da5c57d60a4 100644 (file)
@@ -21,6 +21,7 @@ dpkg (1.14.15) UNRELEASED; urgency=low
   * Ignore wrapped lines in install-info when matching section titles.
     Closes: #214684
     Thanks to Andreas Metzler and Ian Zimmerman.
+  * Do not use strdup for execvp arguments. Closes: #379027
 
   [ Updated dpkg translations ]
   * Norwegian BokmÃ¥l (Hans Fredrik Nordhaug). Closes: #457918
index df21d277e42f7f0dbbd850a0fdce9d8e5a446ba0..64a104ef97191a92502857b9ffe9aa5032b471f6 100644 (file)
@@ -1097,7 +1097,7 @@ void archivefiles(const char *const *argv) {
       m_dup2(pi[1],1); close(pi[0]); close(pi[1]);
       for (i=0, ap=argv; *ap; ap++, i++);
       narglist= m_malloc(sizeof(char*)*(i+15));
-      narglist[0]= strdup(FIND);
+      narglist[0] = FIND;
       for (i=1, ap=argv; *ap; ap++, i++) {
         if (strchr(FIND_EXPRSTARTCHARS,(*ap)[0])) {
           char *a;
@@ -1106,15 +1106,18 @@ void archivefiles(const char *const *argv) {
           strcat(a,*ap);
           narglist[i]= a;
         } else {
-          narglist[i]= strdup(*ap);
+          narglist[i] = (char *)*ap;
         }
       }
-      narglist[i++]= strdup("-follow"); /*  When editing these, make sure that     */
-      narglist[i++]= strdup("-name");   /*  arglist is mallocd big enough, above.  */
-      narglist[i++]= strdup(ARCHIVE_FILENAME_PATTERN);
-      narglist[i++]= strdup("-type");
-      narglist[i++]= strdup("f");
-      narglist[i++]= strdup("-print0");
+      /* When editing these, make sure that arglist is malloced big enough,
+       * above.
+       */
+      narglist[i++] = "-follow";
+      narglist[i++] = "-name";
+      narglist[i++] = ARCHIVE_FILENAME_PATTERN;
+      narglist[i++] = "-type";
+      narglist[i++] = "f";
+      narglist[i++] = "-print0";
       narglist[i++]= 0;
       execvp(FIND, narglist);
       ohshite(_("failed to exec find for --recursive"));