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
