From 76424ff95d512c4eb822299f8a4ea66627e9284b Mon Sep 17 00:00:00 2001 From: Jaroslav Rohel Date: Tue, 9 May 2017 15:20:00 +0200 Subject: [PATCH] Fix reading 64bit integer values from RPM header --- ext/repo_rpmdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c index 40a1e3e7..b98720a9 100644 --- a/ext/repo_rpmdb.c +++ b/ext/repo_rpmdb.c @@ -262,7 +262,7 @@ headint64array(RpmHead *h, int tag, int *cnt) for (o = 0; o < i; o++, d += 8) { unsigned int x = d[0] << 24 | d[1] << 16 | d[2] << 8 | d[3]; - r[o] = (unsigned long long)x << 32 | (d[4] << 24 | d[5] << 16 | d[6] << 8 | d[7]); + r[o] = (unsigned long long)x << 32 | (unsigned int)(d[4] << 24 | d[5] << 16 | d[6] << 8 | d[7]); } return r; } @@ -281,7 +281,7 @@ headint64(RpmHead *h, int tag) return 0; d = h->dp + o; i = d[0] << 24 | d[1] << 16 | d[2] << 8 | d[3]; - return (unsigned long long)i << 32 | (d[4] << 24 | d[5] << 16 | d[6] << 8 | d[7]); + return (unsigned long long)i << 32 | (unsigned int)(d[4] << 24 | d[5] << 16 | d[6] << 8 | d[7]); } static unsigned int * -- 2.47.2