diff options
author | Michael Adam <obnox@samba.org> | 2009-03-04 22:05:17 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-03-27 14:15:39 +0100 |
commit | 72f05fd39cd8e6fecdf5fb5253861315867e5f29 (patch) | |
tree | 7feaedff8edbae12a99a6f0bac0e04934914a0af /source/lib | |
parent | 43ccd3180aca89ca0f0efefdcdb26f2f436a79c1 (diff) | |
download | samba-72f05fd39cd8e6fecdf5fb5253861315867e5f29.tar.gz samba-72f05fd39cd8e6fecdf5fb5253861315867e5f29.tar.xz samba-72f05fd39cd8e6fecdf5fb5253861315867e5f29.zip |
s3:dbwrap_ctdb_marshall_add: don't leak the ctdb_rec_data to the outside
Michael
Signed-off-by: Michael Adam <obnox@samba.org>
(cherry picked from commit a470af9a18b328548f241dca4f744d25c7cdc13e)
Diffstat (limited to 'source/lib')
-rw-r--r-- | source/lib/dbwrap_ctdb.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/lib/dbwrap_ctdb.c b/source/lib/dbwrap_ctdb.c index 2818634b143..d5d4ac7c899 100644 --- a/source/lib/dbwrap_ctdb.c +++ b/source/lib/dbwrap_ctdb.c @@ -121,9 +121,9 @@ static struct ctdb_marshall_buffer *db_ctdb_marshall_add(TALLOC_CTX *mem_ctx, { struct ctdb_rec_data *r; size_t m_size, r_size; - struct ctdb_marshall_buffer *m2; + struct ctdb_marshall_buffer *m2 = NULL; - r = db_ctdb_marshall_record(mem_ctx, reqid, key, header, data); + r = db_ctdb_marshall_record(talloc_tos(), reqid, key, header, data); if (r == NULL) { talloc_free(m); return NULL; @@ -133,7 +133,7 @@ static struct ctdb_marshall_buffer *db_ctdb_marshall_add(TALLOC_CTX *mem_ctx, m = (struct ctdb_marshall_buffer *)talloc_zero_size( mem_ctx, offsetof(struct ctdb_marshall_buffer, data)); if (m == NULL) { - return NULL; + goto done; } m->db_id = db_id; } @@ -145,15 +145,15 @@ static struct ctdb_marshall_buffer *db_ctdb_marshall_add(TALLOC_CTX *mem_ctx, mem_ctx, m, m_size + r_size); if (m2 == NULL) { talloc_free(m); - return NULL; + goto done; } memcpy(m_size + (uint8_t *)m2, r, r_size); - talloc_free(r); - m2->count++; +done: + talloc_free(r); return m2; } |