The branch, master has been updated via 05e618c dbwrap_tool: We don't do "listwatchers" anymore via 0ce26c7 dbwrap_tool: Avoid an unnecessary "else" via 02d4484 dbwrap_tool: Simplify persistent/non-persistent check via 46819e2 dbwrap_tool: Simplify listkey_fn via 89f9c16 dbwrap_tool: Simplify dbwrap_tool_erase via 0bd109b smbd: Fix a memleak in async search ask sharemode from 30eb288 ctdb-tests: Don't run valgrind or other tracing in simple_test_command()
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 05e618cbaf5b28e9db7f7e1f47bd98943f71c40a Author: Volker Lendecke <v...@samba.org> Date: Fri Aug 24 15:11:53 2018 +0200 dbwrap_tool: We don't do "listwatchers" anymore Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Autobuild-User(master): Ralph Böhme <s...@samba.org> Autobuild-Date(master): Mon Sep 3 21:38:40 CEST 2018 on sn-devel-144 commit 0ce26c75cb0329d013365dcff973d6ebe2261775 Author: Volker Lendecke <v...@samba.org> Date: Fri Aug 24 15:07:28 2018 +0200 dbwrap_tool: Avoid an unnecessary "else" Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 02d448429cc7f715b34d42aa425b74a715221202 Author: Volker Lendecke <v...@samba.org> Date: Fri Aug 24 15:06:34 2018 +0200 dbwrap_tool: Simplify persistent/non-persistent check Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 46819e2628a1439a94ed3a63bc164ce1d7b67706 Author: Volker Lendecke <v...@samba.org> Date: Fri Aug 24 14:41:41 2018 +0200 dbwrap_tool: Simplify listkey_fn To me dbwrap_record_get_key(rec).dsize just looks a bit ugly Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 89f9c163f32a409a40ae73455af892e58cd0e214 Author: Volker Lendecke <v...@samba.org> Date: Fri Aug 24 14:39:19 2018 +0200 dbwrap_tool: Simplify dbwrap_tool_erase That's what dbwrap_wipe is for :-) Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 0bd109b733fbce774feae2142d25f7e828b56bcb Author: Volker Lendecke <v...@samba.org> Date: Mon Sep 3 15:54:48 2018 +0200 smbd: Fix a memleak in async search ask sharemode fetch_share_mode_unlocked_parser() takes a "struct fetch_share_mode_unlocked_state *" as "private_data". fetch_share_mode_send() used a talloc_zero'ed "struct share_mode_lock". This lead to the parser putting a "struct share_mode_lock on the NULL talloc_context where nobody really picked it up. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13602 Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/locking/share_mode_lock.c | 13 +++++-------- source3/utils/dbwrap_tool.c | 30 +++++++++++------------------- 2 files changed, 16 insertions(+), 27 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c index 0bf7b9d..90723fb 100644 --- a/source3/locking/share_mode_lock.c +++ b/source3/locking/share_mode_lock.c @@ -663,7 +663,7 @@ static void fetch_share_mode_done(struct tevent_req *subreq); struct fetch_share_mode_state { struct file_id id; TDB_DATA key; - struct share_mode_lock *lck; + struct fetch_share_mode_unlocked_state parser_state; enum dbwrap_req_state req_state; }; @@ -711,17 +711,14 @@ struct tevent_req *fetch_share_mode_send(TALLOC_CTX *mem_ctx, state->id = id; state->key = locking_key(&state->id); - state->lck = talloc_zero(state, struct share_mode_lock); - if (tevent_req_nomem(state->lck, req)) { - return tevent_req_post(req, ev); - } + state->parser_state.mem_ctx = state; subreq = dbwrap_parse_record_send(state, ev, lock_db, state->key, fetch_share_mode_unlocked_parser, - state->lck, + &state->parser_state, &state->req_state); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); @@ -765,12 +762,12 @@ NTSTATUS fetch_share_mode_recv(struct tevent_req *req, return status; } - if (state->lck->data == NULL) { + if (state->parser_state.lck->data == NULL) { tevent_req_received(req); return NT_STATUS_NOT_FOUND; } - lck = talloc_move(mem_ctx, &state->lck); + lck = talloc_move(mem_ctx, &state->parser_state.lck); if (DEBUGLEVEL >= 10) { DBG_DEBUG("share_mode_data:\n"); diff --git a/source3/utils/dbwrap_tool.c b/source3/utils/dbwrap_tool.c index 94aacd8..9c27fdc 100644 --- a/source3/utils/dbwrap_tool.c +++ b/source3/utils/dbwrap_tool.c @@ -25,7 +25,6 @@ #include "popt_common.h" #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" -#include "dbwrap/dbwrap_watch.h" #include "messages.h" #include "util_tdb.h" @@ -280,13 +279,6 @@ static int dbwrap_tool_exists(struct db_context *db, return (result)?0:1; } - -static int delete_fn(struct db_record *rec, void *priv) -{ - dbwrap_record_delete(rec); - return 0; -} - /** * dbwrap_tool_erase: erase the whole data base * the keyname argument is not used. @@ -295,11 +287,11 @@ static int dbwrap_tool_erase(struct db_context *db, const char *keyname, const char *data) { - NTSTATUS status; + int ret; - status = dbwrap_traverse(db, delete_fn, NULL, NULL); + ret = dbwrap_wipe(db); - if (!NT_STATUS_IS_OK(status)) { + if (ret != 0) { d_fprintf(stderr, "ERROR erasing the database\n"); return -1; } @@ -309,8 +301,9 @@ static int dbwrap_tool_erase(struct db_context *db, static int listkey_fn(struct db_record *rec, void *private_data) { - int length = dbwrap_record_get_key(rec).dsize; - unsigned char *p = (unsigned char *)dbwrap_record_get_key(rec).dptr; + TDB_DATA key = dbwrap_record_get_key(rec); + size_t length = key.dsize; + unsigned char *p = (unsigned char *)key.dptr; while (length--) { if (isprint(*p) && !strchr("\"\\", *p)) { @@ -435,19 +428,18 @@ int main(int argc, const char **argv) "USAGE: %s [options] <database> <op> [<key> [<type> " "[<value>]]]\n" " ops: fetch, store, delete, exists, " - "erase, listkeys, listwatchers\n" + "erase, listkeys\n" " types: int32, uint32, string, hex\n", argv[0]); goto done; } - if ((persistent == 0 && non_persistent == 0) || - (persistent == 1 && non_persistent == 1)) - { + if ((persistent + non_persistent) != 1) { d_fprintf(stderr, "ERROR: you must specify exactly one " "of --persistent and --non-persistent\n"); goto done; - } else if (non_persistent == 1) { + } + if (non_persistent == 1) { tdb_flags |= TDB_CLEAR_IF_FIRST; } @@ -508,7 +500,7 @@ int main(int argc, const char **argv) d_fprintf(stderr, "ERROR: invalid op '%s' specified\n" " supported ops: fetch, store, delete, exists, " - "erase, listkeys, listwatchers\n", + "erase, listkeys\n", opname); goto done; } -- Samba Shared Repository