summaryrefslogtreecommitdiff
path: root/lib/rpmte.c
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2008-06-02 09:48:41 +0300
committerPanu Matilainen <pmatilai@redhat.com>2008-06-02 09:48:41 +0300
commitbeb573c2a02c20d593577c7b358d722ed1c021c4 (patch)
tree7b5a441420ed78e639674f32d0cdec4582457bad /lib/rpmte.c
parent27855634e99f66eef2fbe4ca8837a00b46964cc2 (diff)
downloadrpm-beb573c2a02c20d593577c7b358d722ed1c021c4.tar.gz
rpm-beb573c2a02c20d593577c7b358d722ed1c021c4.tar.bz2
rpm-beb573c2a02c20d593577c7b358d722ed1c021c4.zip
Unbreak handling of packages without epoch
- rpmtdToString() returned NULL on empty data, rpmtdFormat() returns (unknown type) which isn't exactly appropriate value for epoch...
Diffstat (limited to 'lib/rpmte.c')
-rw-r--r--lib/rpmte.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/rpmte.c b/lib/rpmte.c
index 221240527..491a893d7 100644
--- a/lib/rpmte.c
+++ b/lib/rpmte.c
@@ -90,8 +90,11 @@ static void addTE(rpmts ts, rpmte p, Header h,
p->version = xstrdup(version);
p->release = xstrdup(release);
- headerGet(h, RPMTAG_EPOCH, &td, HEADERGET_MINMEM);
- p->epoch = rpmtdFormat(&td, RPMTD_FORMAT_STRING, NULL);
+ if (headerGet(h, RPMTAG_EPOCH, &td, HEADERGET_MINMEM)) {
+ p->epoch = rpmtdFormat(&td, RPMTD_FORMAT_STRING, NULL);
+ } else {
+ p->epoch = NULL;
+ }
p->arch = arch ? xstrdup(arch) : NULL;
p->archScore = arch ? rpmMachineScore(RPM_MACHTABLE_INSTARCH, arch) : 0;