The ssize_t cast upsets coverity for some reason but we can be a lot more
restrictive here anyway. Quick analysis of the zalloc calls in the test suite
show the largest allocation is 9204 bytes.

Let's put a cap on for one MB, anything above that is likely some memory
corruption and should be caught early.

Signed-off-by: Peter Hutterer <[email protected]>
---
 src/libinput-util.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/libinput-util.h b/src/libinput-util.h
index 8c67dcbd..4f60e8ea 100644
--- a/src/libinput-util.h
+++ b/src/libinput-util.h
@@ -142,7 +142,9 @@ zalloc(size_t size)
 {
        void *p;
 
-       if ((ssize_t)size < 0)
+       /* We never need to alloc anything even near one MB so we can assume
+        * if we ever get above that something's going wrong */
+       if (size > 1024 * 1024)
                abort();
 
        p = calloc(1, size);
-- 
2.17.1

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to