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

Reply via email to