From 1fbaebad63c10ade0d5d445dac12104d10303488 Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Thu, 12 Dec 2013 13:34:54 +0100 Subject: [PATCH] coccinelle: add test on realloc If we use SCRealloc like: x = SCRealloc(x, ...) then in case of failure we are loosing the original pointer value and the memory is lost and can not be free. This test just check for this construction and output an error if it finds it. --- qa/coccinelle/realloc.cocci | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 qa/coccinelle/realloc.cocci diff --git a/qa/coccinelle/realloc.cocci b/qa/coccinelle/realloc.cocci new file mode 100644 index 0000000000..0b82880735 --- /dev/null +++ b/qa/coccinelle/realloc.cocci @@ -0,0 +1,18 @@ +@realloc@ +expression x, E; +type ty; +position p1; +@@ + +( +x@p1 = SCRealloc(x, E) +| +x@p1 = (ty *) SCRealloc(x, E) +) + +@script:python@ +p1 << realloc.p1; +@@ +print "Structure reallocated at %s:%s but original pointer is lost and not freed in case of error." % (p1[0].file, p1[0].line) +import sys +sys.exit(1)