From 50b2b1b2be0ecb0bcdce376bb586f7f9db5b6592 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 13 Oct 2016 13:05:32 +0200 Subject: fix reporting size on big packages (mga#19571) --- URPM.xs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'URPM.xs') 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); -- cgit v1.2.1