chiark / gitweb /
SECURITY: pa_soa: Do not sign extend SOA 32-bit integer fields on 64-bit
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Dec 2016 14:30:30 +0000 (14:30 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 26 May 2020 19:08:52 +0000 (20:08 +0100)
commit4c4071fbf5b7d5bbb030d38710db9c7810a2b8fa
treeca15bf7b90f3b1f2aab7ace39173a0356f6d66a6
parent17afb298d90c5aafed76bd3855a5fe7dcd58594c
SECURITY: pa_soa: Do not sign extend SOA 32-bit integer fields on 64-bit

The previous code used GET_W twice on two int variables, for no
explicable reason.  The top of these int variables was shifted left by
16, giving a 32-bit signed value.  The fields in adns_rr_soa are
unsigned long.  On a 64-bit machine, the 32-bit signed value is
implicitly sign extended.  This is entirely wrong.

Found by AFL 2.35b.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/types.c