[Rpm-maint] [rpm-software-management/rpm] Fix 32-bit builds (#1643)

Demi Marie Obenour notifications at github.com
Sat Apr 17 17:48:03 UTC 2021


RPM has been broken on 32-bit platforms since
1efe530450b5bdbd90128327be56c87fa1b6843b, due to an integer promotion
bug: ‘einfo.offset’ gets promoted to unsigned, but promoting a negative
number produces a very large positive number.  When that number is
divided by 16, the result is still a large positive number, but the top
four bits are cleared.  Therefore, negating it produces a large negative
number with the four most significant bits set.  On 64 bit platforms,
the implicit conversion to ‘int32_t’ masks these off, but on 32-bit
platforms, the result is a negative ‘blob->ril’ that is later rejected.
The result is that no package can be installed.

This bug only affected 32-bit builds, which is why it was missed by CI.
It does not affect any release version.

Fixes: 1efe530450b5bdbd90128327be56c87fa1b6843b
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/1643

-- Commit Summary --

  * Fix 32-bit builds

-- File Changes --

    M lib/header.c (9)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/1643.patch
https://github.com/rpm-software-management/rpm/pull/1643.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/1643
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20210417/fe36f722/attachment.html>


More information about the Rpm-maint mailing list