]> xenbits.xensource.com Git - people/gdunlap/xen.git/commitdiff
gentypes: zero out structure in _dispose function
authorWei Liu <wei.liu2@citrix.com>
Wed, 25 Feb 2015 14:56:03 +0000 (14:56 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Mon, 2 Mar 2015 17:05:39 +0000 (17:05 +0000)
Original the structure was memset to a poison value. That prevented
_dispose to be made idempotent. We should stop doing so.

Memseting the structure to 0 makes all pointers in structure become
NULL, which can be handled by free().

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/gentypes.py

index d9e14fde672ed0b3dc2f1df8c8ef4d50cfc8edb8..afd4eeab03cf8230d649480720d899c466fb98c6 100644 (file)
@@ -636,7 +636,6 @@ if __name__ == '__main__':
 
 #include "libxl_internal.h"
 
-#define LIBXL_DTOR_POISON 0xa5
 
 """ % " ".join(sys.argv))
 
@@ -644,7 +643,7 @@ if __name__ == '__main__':
         f.write("void %s(%s)\n" % (ty.dispose_fn, ty.make_arg("p")))
         f.write("{\n")
         f.write(libxl_C_type_dispose(ty, "p"))
-        f.write("    memset(p, LIBXL_DTOR_POISON, sizeof(*p));\n")
+        f.write("    memset(p, 0, sizeof(*p));\n")
         f.write("}\n")
         f.write("\n")