]> granicus.if.org Git - strace/commit
evdev: fix array size calculation in decode_bitset_
authorEugene Syromyatnikov <evgsyr@gmail.com>
Fri, 12 Jul 2019 12:57:28 +0000 (14:57 +0200)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 13 Jul 2019 11:48:01 +0000 (11:48 +0000)
commit96194ed74158f0b9976fae43a910ad14eaea141e
tree1e56a7e2ef795b7bfee7f57b96a27d395785e717
parent7ada13f3a40e2f58aea335cf910666378e7dd99a
evdev: fix array size calculation in decode_bitset_

max_nr is in bits (as it is a number of flags), result is in bytes, and
the array allocation has to be in personality words.

There's still an open question, however, what to do on big-endian
architectures when a non-divisible-by-4 value is returned.

* evdev.c (decode_bitset_): Declare size_bits, initialise it and use it
later instead of size; round up size by personality's word boundary.
evdev.c