[PATCH libinput] util: abort if we try to allocate more than a MB

Peter Hutterer peter.hutterer at who-t.net
Tue Jun 19 23:44:59 UTC 2018


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 <peter.hutterer at who-t.net>
---
 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



More information about the wayland-devel mailing list