From b0a0627ae26b6e6c665d409a2ca2cf666da3cd36 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 13 Apr 2018 09:05:02 +1000 Subject: [PATCH] evdev: add a run-time check to avoid re-using model flags Only runs on the LIBINPUT_MODEL_* flags, the ID_INPUT_TRACKBALL flag is an exception. Signed-off-by: Peter Hutterer --- src/evdev.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index a85a5521..1239a51d 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1291,8 +1291,15 @@ evdev_read_model_flags(struct evdev_device *device) }; const struct model_map *m = model_map; uint32_t model_flags = 0; + uint32_t all_model_flags = 0; while (m->property) { + /* Check for flag re-use */ + if (strneq("LIBINPUT_MODEL_", m->property, 15)) { + assert((all_model_flags & m->model) == 0); + all_model_flags |= m->model; + } + if (parse_udev_flag(device, device->udev_device, m->property)) {