dosbox-staging:kc/signed-multiply-overflow-1

Last commit made on 2024-01-02
Get this branch:
git clone -b kc/signed-multiply-overflow-1 https://git.launchpad.net/dosbox-staging

Branch merges

Branch information

Name:
kc/signed-multiply-overflow-1
Repository:
lp:dosbox-staging

Recent commits

d763b02... by kcgen <email address hidden>

Accommodate a larger count size in the full core

6bde431... by kcgen <email address hidden>

Fix an undefined behaviour in the 32-bit signed multiplier

DIMULD ("double word integer multiplied with double word integer")
multiplies signed 32-bit values (op2 and op3), and stores the result
in op1, also a signed 32-bit variable.

The result of the multiplication is allowed to overflow the capacity
of op1; if so, then the carry and overflow bits are set.

Ref: https://docs.oracle.com/cd/E19455-01/806-3773/instructionset-39/index.html

The issue is that operands were being cast straight from their
incoming uint32_t register types up to signed 64-bit values, instead
of first being cast to signed 32-bit values.

This was caught while testing Frontier - First Encounter with a
position independent UBSAN build:

meson setup --buildtype=debug \
             -Db_sanitize=undefined \
             -Db_pie=true \
             -Db_staticpic=true build/ubsan

runtime error: signed integer overflow: 4294934784 * 4294950322
               cannot be represented in type 'long long'

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
         ../../src/cpu/core_normal/prefix_66_0f.h:236:4 in

ed4d383... by John Novak <email address hidden>

website: fix site URL in mkdocs.yml

998a3ef... by FeralChild64 <email address hidden>

Pass button press events to guest side if gaining focus in seamless mode

d9d90c0... by Burrito78 <email address hidden>

Update german translation for v0.81 RC1

- More translation fixes.

763f6a4... by kcgen <email address hidden>

Lookup the resource file when getting lines

e2451dc... by Kirk Klobe <email address hidden>

Add header guard

6d308a7... by John Novak <email address hidden>

website: add joystick support info to the getting started guide

51df031... by FeralChild64 <email address hidden>

Remove obsolete 'fopen_wrap' mechanism

The protection agains accessing /proc filesystem looks obsolete,
running the emulator as root is not considered a sane practice
nowadays.

3ead5a2... by FeralChild64 <email address hidden>

Fix check for forbidden paths on POSIX systems