aboutsummaryrefslogtreecommitdiffstats
path: root/URPM.xs
diff options
context:
space:
mode:
Diffstat (limited to 'URPM.xs')
-rw-r--r--URPM.xs10
1 files changed, 4 insertions, 6 deletions
diff --git a/URPM.xs b/URPM.xs
index 41a6b8c..bd0c6f8 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -201,13 +201,12 @@ get_arch(const Header header) {
return headerIsEntry(header, RPMTAG_SOURCERPM) ? get_name(header, RPMTAG_ARCH) : "src";
}
-static int
+static uint64_t
get_int(const Header header, rpmTag tag) {
struct rpmtd_s val;
- headerGet(header, tag, &val, HEADERGET_DEFAULT);
- uint32_t *ep = rpmtdGetUint32(&val);
- return ep ? *ep : 0;
+ headerGet(header, tag, &val, HEADERGET_ALLOC);
+ return rpmtdGetNumber(&val);
}
static size_t
@@ -755,8 +754,7 @@ pack_header(const URPM__Package pkg) {
const char *p = buff;
const char *nvr = headerGetAsString(pkg->h, RPMTAG_NVR);
const char *arch = get_arch(pkg->h);
-
- p += 1 + snprintf(buff, sizeof(buff), "%s.%s@%d@%d@%s", nvr, arch,
+ p += 1 + snprintf(buff, sizeof(buff), "%s.%s@%lu@%lu@%s", nvr, arch,
get_int(pkg->h, RPMTAG_EPOCH), get_int(pkg->h, RPMTAG_SIZE),
get_name(pkg->h, RPMTAG_GROUP));
pkg->info = memcpy(malloc(p-buff), buff, p-buff);