From: Andrew Bartlett Date: Mon, 27 Aug 2012 09:42:44 +0000 (+1000) Subject: s3-secrets: Use talloc_stackframe() in secrets_init_path() X-Git-Tag: samba-4.0.0beta7~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f2d9be5af601741444bc5ff3d91edce38acff024;p=thirdparty%2Fsamba.git s3-secrets: Use talloc_stackframe() in secrets_init_path() --- diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c index dff855cce63..8f314a76cf5 100644 --- a/source3/passdb/secrets.c +++ b/source3/passdb/secrets.c @@ -59,6 +59,7 @@ bool secrets_init_path(const char *private_dir) { char *fname = NULL; unsigned char dummy; + TALLOC_CTX *frame; if (db_ctx != NULL) { return True; @@ -68,9 +69,11 @@ bool secrets_init_path(const char *private_dir) return False; } - fname = talloc_asprintf(talloc_tos(), "%s/secrets.tdb", + frame = talloc_stackframe(); + fname = talloc_asprintf(frame, "%s/secrets.tdb", private_dir); if (fname == NULL) { + TALLOC_FREE(frame); return False; } @@ -80,11 +83,10 @@ bool secrets_init_path(const char *private_dir) if (db_ctx == NULL) { DEBUG(0,("Failed to open %s\n", fname)); + TALLOC_FREE(frame); return False; } - TALLOC_FREE(fname); - /** * Set a reseed function for the crypto random generator * @@ -96,6 +98,7 @@ bool secrets_init_path(const char *private_dir) /* Ensure that the reseed is done now, while we are root, etc */ generate_random_buffer(&dummy, sizeof(dummy)); + TALLOC_FREE(frame); return True; }