diff options
author | Lubos Kardos <lkardos@redhat.com> | 2016-04-25 14:38:47 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2016-11-02 10:41:53 +0200 |
commit | 81a1656b38a837fa0bf78c7669a6133b04658293 (patch) | |
tree | 64b7b1b546a44873d4be7d5b624249374661a034 | |
parent | 3cffded66206cad881348c98b16f86e22e6e00da (diff) | |
download | rpm-81a1656b38a837fa0bf78c7669a6133b04658293.tar.gz |
Fix sigsegv in stringFormat() (rhbz:1316903)
Just skip duping of NULL and return it. Returned NULL is handled in
upper layer.
(cherry picked from commit cddf43a56f19711866371f02f378dc4095b0fadd)
-rw-r--r-- | lib/formats.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/formats.c b/lib/formats.c index 653f43d45..070731a1a 100644 --- a/lib/formats.c +++ b/lib/formats.c @@ -44,9 +44,12 @@ static char * stringFormat(rpmtd td) case RPM_NUMERIC_CLASS: rasprintf(&val, "%" PRIu64, rpmtdGetNumber(td)); break; - case RPM_STRING_CLASS: - val = xstrdup(rpmtdGetString(td)); + case RPM_STRING_CLASS: { + const char *str = rpmtdGetString(td); + if (str) + val = xstrdup(str); break; + } case RPM_BINARY_CLASS: val = pgpHexStr(td->data, td->count); break; |