void-packages/srcpkgs/d2/patches/magic-32bit.patch
2023-03-30 12:08:31 -04:00

35 lines
1.2 KiB
Diff

The value of MAGIC_CHECKSUM_ADJUSTMENT overflows a signed integer on 32-bit
architectures and is always used as an unsigned value anyway, so just define it
as unsigned from the beginning.
--- a/lib/font/font.go
+++ b/lib/font/font.go
@@ -49,8 +49,8 @@
WOFF_ENTRY_OFFSET_CHECKSUM = 16
// magic
- MAGIC_WOFF = 0x774f4646
- MAGIC_CHECKSUM_ADJUSTMENT = 0xb1b0afba
+ MAGIC_WOFF uint32 = 0x774f4646
+ MAGIC_CHECKSUM_ADJUSTMENT uint32 = 0xb1b0afba
// sizes
SIZE_OF_WOFF_HEADER = 44
@@ -85,7 +85,7 @@
numTables := binary.BigEndian.Uint16(fontBuf[4:])
woffHeader := make([]byte, SIZE_OF_WOFF_HEADER)
- binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_MAGIC:], uint32(MAGIC_WOFF))
+ binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_MAGIC:], MAGIC_WOFF)
binary.BigEndian.PutUint16(woffHeader[WOFF_OFFSET_NUM_TABLES:], numTables)
binary.BigEndian.PutUint16(woffHeader[WOFF_OFFSET_SFNT_SIZE:], 0)
binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_META_OFFSET:], 0)
@@ -148,7 +148,7 @@
csum += tableEntry.CheckSum
}
- var checksumAdjustment = uint32(MAGIC_CHECKSUM_ADJUSTMENT) - csum
+ var checksumAdjustment = MAGIC_CHECKSUM_ADJUSTMENT - csum
majorVersion := uint16(0)
minVersion := uint16(1)