From: Eugene Syromiatnikov Date: Thu, 20 Dec 2018 15:35:27 +0000 (+0100) Subject: evdev: fix off-by-one error in decode_bitset X-Git-Tag: v4.26~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a5feb1cb331441d1b721b6455ee95b50258dbac;p=strace evdev: fix off-by-one error in decode_bitset * evdev.c (decode_bitset): Decrement sorted/indexed xlat's size by one in order to account for guarding XLAT_END, as other sorted/indexed xlat wrappers do. Fixes: v4.23~261 "evdev: support various types of xlats in decode_bitset" --- diff --git a/evdev.c b/evdev.c index 325477c7..8d22d08e 100644 --- a/evdev.c +++ b/evdev.c @@ -188,7 +188,7 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg, #define decode_bitset(tcp_, arg_, decode_nr_, max_nr_, dflt_, xt_) \ decode_bitset_((tcp_), (arg_), (decode_nr_), (max_nr_), \ - (dflt_), ARRAY_SIZE(decode_nr_), (xt_)) + (dflt_), ARRAY_SIZE(decode_nr_) - 1, (xt_)) # ifdef EVIOCGMTSLOTS static int