summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubos Kardos <lkardos@redhat.com>2016-04-25 14:38:47 +0200
committerPanu Matilainen <pmatilai@redhat.com>2016-11-02 10:41:53 +0200
commit81a1656b38a837fa0bf78c7669a6133b04658293 (patch)
tree64b7b1b546a44873d4be7d5b624249374661a034
parent3cffded66206cad881348c98b16f86e22e6e00da (diff)
downloadrpm-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.c7
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;