]> xenbits.xensource.com Git - xen.git/commitdiff
xl: poison data objects in auto-generated destructors
authorGianni Tedesco <gianni.tedesco@citrix.com>
Fri, 20 Aug 2010 16:12:00 +0000 (17:12 +0100)
committerGianni Tedesco <gianni.tedesco@citrix.com>
Fri, 20 Aug 2010 16:12:00 +0000 (17:12 +0100)
Increase the probability of blowing up badly up during any
use-after-destroy scenarios.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/gentypes.py

index 175fae3e3c1315339c09493e8de57663b53b05d9..52cbf1f25b54b5f95200da6f2c0119f613102f1f 100644 (file)
@@ -145,15 +145,19 @@ if __name__ == '__main__':
 
 #include <stdint.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "libxl.h"
 
+#define LIBXL_DTOR_POISON 0xa5
+
 """ % " ".join(sys.argv))
 
     for ty in [t for t in types if t.destructor_fn is not None and t.autogenerate_destructor]:
         f.write("void %s(%s *p)\n" % (ty.destructor_fn, ty.typename))
         f.write("{\n")
         f.write(libxl_C_type_destroy(ty, "p", True))
+        f.write("\tmemset(p, LIBXL_DTOR_POISON, sizeof(*p));\n")
         f.write("}\n")
         f.write("\n")
     f.close()