]> err.no Git - dpkg/commitdiff
dpkg: Fix the support for passing more than one --status-fd option
authorGuillem Jover <guillem@debian.org>
Wed, 4 Jun 2008 01:00:41 +0000 (04:00 +0300)
committerGuillem Jover <guillem@debian.org>
Wed, 4 Jun 2008 01:00:41 +0000 (04:00 +0300)
Until now only the last one was being used.

ChangeLog
debian/changelog
src/main.c

index ad6da42826d29d95e3a6eff2d815f0b14ed17446..694ed8b210d40004c0c9d96992bf160d409ab00b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-06-04  Guillem Jover  <guillem@debian.org>
+
+       * src/main.c (setpipe): Fix the setting of more than one pipef.
+
 2008-06-04  Guillem Jover  <guillem@debian.org>
 
        * src/select.c (setselections): Free varbuf variables.
index 041413fc6c495c8024a8469abd5b55cec87878c2..b47322fbcf11c9c7c7691ed4d346a4ec7feb1e2a 100644 (file)
@@ -12,6 +12,8 @@ dpkg (1.15.0) UNRELEASED; urgency=low
   * Remove duplicate program name from dpkg-trigger badusage output.
   * Trim trailing slash and slash dot from 'dpkg -S' arguments when those
     are path names, but not on patterns. Closes: #129577
+  * Fix the support for passing more than one --status-fd option to dpkg.
+    Until now only the last one was being used.
 
   [ Raphael Hertzog ]
   * Enhance dpkg-shlibdeps's error message when a library can't be found to
index 00b05440ee337d65f585acd630d167c07a6fc8f2..d92210a795ee788657ea47a25d5eb13a383a2225 100644 (file)
@@ -291,7 +291,8 @@ static void setinteger(const struct cmdinfo *cip, const char *value) {
 }
 
 static void setpipe(const struct cmdinfo *cip, const char *value) {
-  static struct pipef **lastpipe;
+  struct pipef **pipe_head = cip->parg;
+  struct pipef *pipe_new;
   unsigned long v;
   char *ep;
 
@@ -299,15 +300,10 @@ static void setpipe(const struct cmdinfo *cip, const char *value) {
   if (*ep || v > INT_MAX)
     badusage(_("invalid integer for --%s: `%.250s'"),cip->olong,value);
 
-  lastpipe= cip->parg;
-  if (*lastpipe) {
-    (*lastpipe)->next= nfmalloc(sizeof(struct pipef));
-    *lastpipe= (*lastpipe)->next;
-  } else {
-    *lastpipe= nfmalloc(sizeof(struct pipef));
-  }
-  (*lastpipe)->fd= v;
-  (*lastpipe)->next= NULL;
+  pipe_new = nfmalloc(sizeof(struct pipef));
+  pipe_new->fd = v;
+  pipe_new->next = *pipe_head;
+  *pipe_head = pipe_new;
 }
 
 static void setforce(const struct cmdinfo *cip, const char *value) {