chiark / gitweb /
dpkg: undo memory leak
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 4 Nov 2016 16:26:15 +0000 (16:26 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 4 Nov 2016 16:26:15 +0000 (16:26 +0000)
0001-provide-dpkg-filter-valid-versions.patch

index c59a0ed..410287b 100644 (file)
@@ -1,20 +1,20 @@
-From fc2314965332d9f9efb3f79f500f4ddbf76e91f8 Mon Sep 17 00:00:00 2001
+From 175235bdb5cf01714bb8f4b99d1d787a81a3d2ce Mon Sep 17 00:00:00 2001
 From: Ian Jackson <ijackson@chiark.greenend.org.uk>
 Date: Fri, 4 Nov 2016 13:55:19 +0000
 Subject: [PATCH] provide dpkg --filter-valid-versions
 
 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
 ---
- src/enquiry.c | 2++++++++++++++++++++
+ src/enquiry.c | 23 +++++++++++++++++++++++
  src/main.c    |  1 +
  src/main.h    |  2 ++
- 3 files changed, 23 insertions(+)
+ 3 files changed, 26 insertions(+)
 
 diff --git a/src/enquiry.c b/src/enquiry.c
-index 9f71863..b5010ad 100644
+index 9f71863..09b5748 100644
 --- a/src/enquiry.c
 +++ b/src/enquiry.c
-@@ -694,3 +694,23 @@ cmpversions(const char *const *argv)
+@@ -694,3 +694,26 @@ cmpversions(const char *const *argv)
    else
      return rip->if_equal;
  }
@@ -24,16 +24,19 @@ index 9f71863..b5010ad 100644
 +{
 +  char buf[100];
 +  char *newline;
-+  struct dpkg_error err;
++  struct dpkg_error err = DPKG_ERROR_INIT;
 +  struct dpkg_version vp;
 +
 +  while (fgets(buf,sizeof(buf),stdin)) {
 +    newline = strchr(buf,'\n');
 +    assert(newline);
 +    *newline = 0;
-+    if (parseversion(&vp, buf, &err))
++    if (parseversion(&vp, buf, &err)) {
++      dpkg_error_destroy(&err);
 +      continue;
++    }
 +    puts(buf);
++    nffreeall();
 +  }
 +  assert(feof(stdin));
 +  return 0;