diff options
-rw-r--r-- | lib/ChangeLog | 2 | ||||
-rw-r--r-- | lib/memory.h | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index b2ec0681..b7c9f040 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,6 +1,8 @@ 2006-06-15 Paul Jakma <paul.jakma@sun.com> * command.c: (cmd_describe_command_real) Fix leak, CID #38. + * memory.h: Experimental, have XFREE macro NULL out the freed + pointer. 2006-05-28 Paul Jakma <paul.jakma@sun.com> diff --git a/lib/memory.h b/lib/memory.h index 071f394e..a23c2787 100644 --- a/lib/memory.h +++ b/lib/memory.h @@ -53,7 +53,10 @@ extern struct mlist mlists[]; #define XMALLOC(mtype, size) zmalloc ((mtype), (size)) #define XCALLOC(mtype, size) zcalloc ((mtype), (size)) #define XREALLOC(mtype, ptr, size) zrealloc ((mtype), (ptr), (size)) -#define XFREE(mtype, ptr) zfree ((mtype), (ptr)) +#define XFREE(mtype, ptr) do { \ + zfree ((mtype), (ptr)); \ + ptr = NULL; } \ + while (0) #define XSTRDUP(mtype, str) zstrdup ((mtype), (str)) #endif /* MEMORY_LOG */ |