dpkg-query: fix segfault when -f parameter is empty
authorRaphaël Hertzog <hertzog@debian.org>
Fri, 10 Aug 2012 12:48:19 +0000 (14:48 +0200)
committerRaphaël Hertzog <hertzog@debian.org>
Fri, 10 Aug 2012 13:09:33 +0000 (15:09 +0200)
Giving an empty parameter seems pretty useless, but it can also be
the result of user errors like using “-f "${Package}"” instead
of “-f '${Package}'” and the segfault does not really help to
understand one's fault.

This commit fixes pkg_format_parse() to define the error message
when the function had nothing to parse. It already returned
the appropriate NULL value but the fact that the error message
was uninitialized resulted in the segfault.

debian/changelog
lib/dpkg/pkg-format.c

index 074a3d6..19d9914 100644 (file)
@@ -3,6 +3,7 @@ dpkg (1.16.9) UNRELEASED; urgency=low
   [ Raphaël Hertzog ]
   * Fix dpkg-source regression in "3.0 (quilt)" source packages while
     unapplying patches that remove all files in a directory. Closes: #683547
+  * Fix segfault of “dpkg-query -W -f ''”.
 
   [ Updated programs translations ]
   * Czech (Miroslav Kure).
index 3183922..74a8599 100644 (file)
@@ -208,6 +208,9 @@ pkg_format_parse(const char *fmt, struct dpkg_error *err)
                }
        }
 
+       if (!head)
+               dpkg_put_error(err, _("may not be empty string"));
+
        return head;
 }