diff options
author | Jeremy Allison <jra@samba.org> | 2008-11-06 20:48:13 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-11-06 20:48:13 -0800 |
commit | 8962be69c700224983af4effd2cd086f7f5800b0 (patch) | |
tree | ad2149c31ca5102a213a13a75cd511b11c64d812 /source3/lib/util.c | |
parent | 7ae625345536572aa946f0715542a5cf2dbc2169 (diff) | |
download | samba-8962be69c700224983af4effd2cd086f7f5800b0.tar.gz samba-8962be69c700224983af4effd2cd086f7f5800b0.tar.bz2 samba-8962be69c700224983af4effd2cd086f7f5800b0.zip |
Make us clean under valgrind --leak-check=full by using talloc_autofree_context() instead of NULL.
Remove the code in memcache that does a TALLOC_FREE on stored pointers. That's a disaster waiting
to happen. If you're storing talloc'ed pointers, you can't know their lifecycle and they should
be deleted when their parent context is deleted, so freeing them at some arbitrary point later
will be a double-free.
Jeremy.
Diffstat (limited to 'source3/lib/util.c')
-rw-r--r-- | source3/lib/util.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c index 820cf376be..5007fb72ef 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -1497,7 +1497,7 @@ uid_t nametouid(const char *name) char *p; uid_t u; - pass = getpwnam_alloc(NULL, name); + pass = getpwnam_alloc(talloc_autofree_context(), name); if (pass) { u = pass->pw_uid; TALLOC_FREE(pass); @@ -2255,8 +2255,8 @@ char *myhostname(void) static char *ret; if (ret == NULL) { /* This is cached forever so - * use NULL talloc ctx. */ - ret = talloc_get_myname(NULL); + * use talloc_autofree_context() ctx. */ + ret = talloc_get_myname(talloc_autofree_context()); } return ret; } |