From 5e770c8f6a41257ea828bf765aa07624f139d369 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 8 Feb 2013 13:53:33 +0000 Subject: [PATCH] lib: Allow guestfs_free_* functions to be safely called with a NULL pointer. This is so they work just like 'free'. --- generator/c.ml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/generator/c.ml b/generator/c.ml index e36a46991..81f7a7635 100644 --- a/generator/c.ml +++ b/generator/c.ml @@ -806,16 +806,21 @@ and generate_client_free_structs () = pr "GUESTFS_DLL_PUBLIC void\n"; pr "guestfs_free_%s (struct guestfs_%s *x)\n" typ typ; pr "{\n"; - pr " xdr_free ((xdrproc_t) xdr_guestfs_int_%s, (char *) x);\n" typ; - pr " free (x);\n"; + pr " if (x) {\n"; + pr " xdr_free ((xdrproc_t) xdr_guestfs_int_%s, (char *) x);\n" typ; + pr " free (x);\n"; + pr " }\n"; pr "}\n"; pr "\n"; pr "GUESTFS_DLL_PUBLIC void\n"; pr "guestfs_free_%s_list (struct guestfs_%s_list *x)\n" typ typ; pr "{\n"; - pr " xdr_free ((xdrproc_t) xdr_guestfs_int_%s_list, (char *) x);\n" typ; - pr " free (x);\n"; + pr " if (x) {\n"; + pr " xdr_free ((xdrproc_t) xdr_guestfs_int_%s_list, (char *) x);\n" + typ; + pr " free (x);\n"; + pr " }\n"; pr "}\n"; pr "\n";