The branch, master has been updated via 652bf0c libhttp: Remove an unneeded include via ff0eed6 dbwrap: Simplify dbwrap_unmarshall_fn via ef2de24 dbwrap: Simplify dbwrap_trans_delete via 2ddf8e0 dbwrap: Simplify dbwrap_trans_store via b01b7c9 dbwrap: Simplify dbwrap_store_uint32_bystring via ae28e4d dbwrap: Simplify dbwrap_store_int32_bystring via a11450d dbwrap: Convert dbwrap_delete to dbwrap_do_locked via 5095733 dbwrap: Convert dbwrap_store to dbwrap_do_locked from 0dbcd6a py-librpc: Strictly check the type of the incoming sid pointer
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 652bf0ca7efcb13d7dab4a9f251a38af80c160a5 Author: Volker Lendecke <v...@samba.org> Date: Wed Jul 26 15:18:16 2017 +0200 libhttp: Remove an unneeded include Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Wed Aug 16 04:11:47 CEST 2017 on sn-devel-144 commit ff0eed62d3334cd720122d97e38df9cf8651acc7 Author: Volker Lendecke <v...@samba.org> Date: Wed Jul 26 15:14:51 2017 +0200 dbwrap: Simplify dbwrap_unmarshall_fn Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit ef2de247c1d0887283cb8dfc25d9e48252a2c9e2 Author: Volker Lendecke <v...@samba.org> Date: Wed Jul 26 15:12:21 2017 +0200 dbwrap: Simplify dbwrap_trans_delete Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 2ddf8e0abc235f396d4b70f9cb22f55d21dffdc5 Author: Volker Lendecke <v...@samba.org> Date: Wed Jul 26 15:10:55 2017 +0200 dbwrap: Simplify dbwrap_trans_store Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit b01b7c9ef9ef45205c6eb49a5959d8718559fd79 Author: Volker Lendecke <v...@samba.org> Date: Wed Jul 26 14:56:53 2017 +0200 dbwrap: Simplify dbwrap_store_uint32_bystring Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit ae28e4db441baff83e374086aa9c5a0c06435f92 Author: Volker Lendecke <v...@samba.org> Date: Wed Jul 26 14:56:53 2017 +0200 dbwrap: Simplify dbwrap_store_int32_bystring Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit a11450d825b756ca8880c6307e38a6ce072fff54 Author: Volker Lendecke <v...@samba.org> Date: Wed Nov 9 16:37:49 2016 +0100 dbwrap: Convert dbwrap_delete to dbwrap_do_locked Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 5095733f923158701fb5a566cd16c2112d51e1c4 Author: Volker Lendecke <v...@samba.org> Date: Wed Nov 9 16:34:28 2016 +0100 dbwrap: Convert dbwrap_store to dbwrap_do_locked Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: lib/dbwrap/dbwrap.c | 51 ++++++++++++++++++++------------ lib/dbwrap/dbwrap_util.c | 76 ++++++++++-------------------------------------- source4/lib/http/http.c | 1 - 3 files changed, 49 insertions(+), 79 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/dbwrap/dbwrap.c b/lib/dbwrap/dbwrap.c index 22437f6..e1d792f 100644 --- a/lib/dbwrap/dbwrap.c +++ b/lib/dbwrap/dbwrap.c @@ -301,38 +301,53 @@ bool dbwrap_exists(struct db_context *db, TDB_DATA key) return (result == 1); } +struct dbwrap_store_state { + TDB_DATA data; + int flags; + NTSTATUS status; +}; + +static void dbwrap_store_fn(struct db_record *rec, void *private_data) +{ + struct dbwrap_store_state *state = private_data; + state->status = dbwrap_record_store(rec, state->data, state->flags); +} + NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key, TDB_DATA data, int flags) { - struct db_record *rec; + struct dbwrap_store_state state = { .data = data, .flags = flags }; NTSTATUS status; - TALLOC_CTX *frame = talloc_stackframe(); - rec = dbwrap_fetch_locked(db, frame, key); - if (rec == NULL) { - TALLOC_FREE(frame); - return NT_STATUS_NO_MEMORY; + status = dbwrap_do_locked(db, key, dbwrap_store_fn, &state); + if (!NT_STATUS_IS_OK(status)) { + return status; } - status = dbwrap_record_store(rec, data, flags); - TALLOC_FREE(frame); - return status; + return state.status; +} + +struct dbwrap_delete_state { + NTSTATUS status; +}; + +static void dbwrap_delete_fn(struct db_record *rec, void *private_data) +{ + struct dbwrap_delete_state *state = private_data; + state->status = dbwrap_record_delete(rec); } NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key) { - struct db_record *rec; + struct dbwrap_delete_state state; NTSTATUS status; - TALLOC_CTX *frame = talloc_stackframe(); - rec = dbwrap_fetch_locked(db, frame, key); - if (rec == NULL) { - TALLOC_FREE(frame); - return NT_STATUS_NO_MEMORY; + status = dbwrap_do_locked(db, key, dbwrap_delete_fn, &state); + if (!NT_STATUS_IS_OK(status)) { + return status; } - status = dbwrap_record_delete(rec); - TALLOC_FREE(frame); - return status; + + return state.status; } NTSTATUS dbwrap_traverse(struct db_context *db, diff --git a/lib/dbwrap/dbwrap_util.c b/lib/dbwrap/dbwrap_util.c index 22f910d..df6dea4 100644 --- a/lib/dbwrap/dbwrap_util.c +++ b/lib/dbwrap/dbwrap_util.c @@ -77,23 +77,14 @@ NTSTATUS dbwrap_fetch_int32_bystring(struct db_context *db, const char *keystr, NTSTATUS dbwrap_store_int32_bystring(struct db_context *db, const char *keystr, int32_t v) { - struct db_record *rec; - int32_t v_store; + uint8_t v_store[sizeof(int32_t)]; + TDB_DATA data = { .dptr = v_store, .dsize = sizeof(v_store) }; NTSTATUS status; - rec = dbwrap_fetch_locked(db, talloc_tos(), - string_term_tdb_data(keystr)); - if (rec == NULL) { - return NT_STATUS_UNSUCCESSFUL; - } - - SIVAL(&v_store, 0, v); + SIVAL(v_store, 0, v); - status = dbwrap_record_store(rec, - make_tdb_data((const uint8_t *)&v_store, - sizeof(v_store)), - TDB_REPLACE); - TALLOC_FREE(rec); + status = dbwrap_store(db, string_term_tdb_data(keystr), data, + TDB_REPLACE); return status; } @@ -142,23 +133,14 @@ NTSTATUS dbwrap_fetch_uint32_bystring(struct db_context *db, NTSTATUS dbwrap_store_uint32_bystring(struct db_context *db, const char *keystr, uint32_t v) { - struct db_record *rec; - uint32_t v_store; + uint8_t v_store[sizeof(uint32_t)]; + TDB_DATA data = { .dptr = v_store, .dsize = sizeof(v_store) }; NTSTATUS status; - rec = dbwrap_fetch_locked(db, talloc_tos(), - string_term_tdb_data(keystr)); - if (rec == NULL) { - return NT_STATUS_INVALID_PARAMETER; - } - - SIVAL(&v_store, 0, v); + SIVAL(v_store, 0, v); - status = dbwrap_record_store(rec, - make_tdb_data((const uint8_t *)&v_store, - sizeof(v_store)), - TDB_REPLACE); - TALLOC_FREE(rec); + status = dbwrap_store(db, string_term_tdb_data(keystr), data, + TDB_REPLACE); return status; } @@ -362,24 +344,17 @@ struct dbwrap_store_context { static NTSTATUS dbwrap_store_action(struct db_context *db, void *private_data) { - struct db_record *rec = NULL; NTSTATUS status; struct dbwrap_store_context *store_ctx; store_ctx = (struct dbwrap_store_context *)private_data; - rec = dbwrap_fetch_locked(db, talloc_tos(), *(store_ctx->key)); - if (rec == NULL) { - DEBUG(5, ("fetch_locked failed\n")); - return NT_STATUS_NO_MEMORY; - } - - status = dbwrap_record_store(rec, *(store_ctx->dbuf), store_ctx->flag); + status = dbwrap_store(db, *(store_ctx->key), *(store_ctx->dbuf), + store_ctx->flag); if (!NT_STATUS_IS_OK(status)) { DEBUG(5, ("store returned %s\n", nt_errstr(status))); } - TALLOC_FREE(rec); return status; } @@ -401,22 +376,13 @@ NTSTATUS dbwrap_trans_store(struct db_context *db, TDB_DATA key, TDB_DATA dbuf, static NTSTATUS dbwrap_delete_action(struct db_context * db, void *private_data) { NTSTATUS status; - struct db_record *rec; TDB_DATA *key = (TDB_DATA *)private_data; - rec = dbwrap_fetch_locked(db, talloc_tos(), *key); - if (rec == NULL) { - DEBUG(5, ("fetch_locked failed\n")); - return NT_STATUS_NO_MEMORY; - } - - status = dbwrap_record_delete(rec); + status = dbwrap_delete(db, *key); if (!NT_STATUS_IS_OK(status)) { DBG_INFO("dbwrap_record_delete returned %s\n", nt_errstr(status)); } - - talloc_free(rec); return status; } @@ -743,22 +709,12 @@ static bool dbwrap_unmarshall_fn(TDB_DATA key, TDB_DATA value, void *private_data) { struct dbwrap_unmarshall_state *state = private_data; - struct db_record *rec; NTSTATUS status; - rec = dbwrap_fetch_locked(state->db, state->db, key); - if (rec == NULL) { - DEBUG(10, ("%s: dbwrap_fetch_locked failed\n", - __func__)); - state->ret = NT_STATUS_NO_MEMORY; - return false; - } - - status = dbwrap_record_store(rec, value, 0); - TALLOC_FREE(rec); + status = dbwrap_store(state->db, key, value, 0); if (!NT_STATUS_IS_OK(status)) { - DEBUG(10, ("%s: dbwrap_record_store failed: %s\n", - __func__, nt_errstr(status))); + DBG_DEBUG("dbwrap_record_store failed: %s\n", + nt_errstr(status)); state->ret = status; return false; } diff --git a/source4/lib/http/http.c b/source4/lib/http/http.c index 8fac33f..659cba0 100644 --- a/source4/lib/http/http.c +++ b/source4/lib/http/http.c @@ -20,7 +20,6 @@ */ #include "includes.h" -#include <talloc_dict.h> #include "lib/util/tevent_ntstatus.h" #include "http.h" #include "http_internal.h" -- Samba Shared Repository