[PATCH] From the attic

Volker Lendecke Volker.Lendecke at SerNet.DE
Mon Nov 13 12:28:29 UTC 2017


Hi!

Some small cleanups from the attic.

Review appreciated!

Thanks, Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From 25af6d06187284eef2a4c828d475639e1c000fea Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 3 Aug 2017 17:03:26 +0200
Subject: [PATCH 01/10] netsamlogon_cache: Use ndr_pull_struct_blob_all

Be a bit more strict for error checking

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/libsmb/samlogon_cache.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c
index 0a2890e4231..70645f2dc40 100644
--- a/source3/libsmb/samlogon_cache.c
+++ b/source3/libsmb/samlogon_cache.c
@@ -253,8 +253,9 @@ struct netr_SamInfo3 *netsamlogon_cache_get(TALLOC_CTX *mem_ctx, const struct do
 
 	blob = data_blob_const(data.dptr, data.dsize);
 
-	ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r,
-				      (ndr_pull_flags_fn_t)ndr_pull_netsamlogoncache_entry);
+	ndr_err = ndr_pull_struct_blob_all(
+		&blob, mem_ctx, &r,
+		(ndr_pull_flags_fn_t)ndr_pull_netsamlogoncache_entry);
 
 	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
 		DEBUG(0,("netsamlogon_cache_get: failed to pull entry from cache\n"));
-- 
2.11.0


From 7df607cc535ff26aa200f6c69b244d9fb5229fc4 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Mon, 13 Nov 2017 08:53:04 +0100
Subject: [PATCH 02/10] libcli: Fix a signed/unsigned hickup

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 libcli/security/util_sid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c
index 0709a7a69e3..50133a14075 100644
--- a/libcli/security/util_sid.c
+++ b/libcli/security/util_sid.c
@@ -195,7 +195,7 @@ static const struct {
 
 const char *sid_type_lookup(uint32_t sid_type)
 {
-	int i;
+	size_t i;
 
 	/* Look through list */
 	for (i=0; i < ARRAY_SIZE(sid_name_type); i++) {
-- 
2.11.0


From 600109877b38ccede4b47c980b849602e9728762 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Fri, 4 Aug 2017 14:47:17 +0200
Subject: [PATCH 03/10] passdb: Fix a typo

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/passdb/lookup_sid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
index b06dd1b6f72..eeaf2b720a7 100644
--- a/source3/passdb/lookup_sid.c
+++ b/source3/passdb/lookup_sid.c
@@ -178,7 +178,7 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
 
 	/*
 	 * Finally check for a well known domain name ("NT Authority"),
-	 * this is taken care if in lookup_wellknown_name().
+	 * this is being taken care of in lookup_wellknown_name().
 	 */
 	if ((domain[0] != '\0') &&
 	    (flags & LOOKUP_NAME_WKN) &&
-- 
2.11.0


From afe66baba6cd388f7a31208c821eb8dc6e0ff3f6 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 3 Aug 2017 17:08:48 +0200
Subject: [PATCH 04/10] util_tdb: Make a few functions static

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 lib/util/util_tdb.c | 11 +++++++----
 lib/util/util_tdb.h | 24 ------------------------
 2 files changed, 7 insertions(+), 28 deletions(-)

diff --git a/lib/util/util_tdb.c b/lib/util/util_tdb.c
index e3eefdac2b1..24fb6584899 100644
--- a/lib/util/util_tdb.c
+++ b/lib/util/util_tdb.c
@@ -132,7 +132,7 @@ void tdb_read_unlock_bystring(struct tdb_context *tdb, const char *keyval)
  Output is int32_t in native byte order.
 ****************************************************************************/
 
-int32_t tdb_fetch_int32_byblob(struct tdb_context *tdb, TDB_DATA key)
+static int32_t tdb_fetch_int32_byblob(struct tdb_context *tdb, TDB_DATA key)
 {
 	TDB_DATA data;
 	int32_t ret;
@@ -163,7 +163,8 @@ int32_t tdb_fetch_int32(struct tdb_context *tdb, const char *keystr)
  Input is int32_t in native byte order. Output in tdb is in little-endian.
 ****************************************************************************/
 
-int tdb_store_int32_byblob(struct tdb_context *tdb, TDB_DATA key, int32_t v)
+static int tdb_store_int32_byblob(struct tdb_context *tdb, TDB_DATA key,
+				  int32_t v)
 {
 	TDB_DATA data;
 	int32_t v_store;
@@ -190,7 +191,8 @@ int tdb_store_int32(struct tdb_context *tdb, const char *keystr, int32_t v)
  Output is uint32_t in native byte order.
 ****************************************************************************/
 
-bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t *value)
+static bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key,
+				    uint32_t *value)
 {
 	TDB_DATA data;
 
@@ -220,7 +222,8 @@ bool tdb_fetch_uint32(struct tdb_context *tdb, const char *keystr, uint32_t *val
  Input is uint32_t in native byte order. Output in tdb is in little-endian.
 ****************************************************************************/
 
-bool tdb_store_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t value)
+static bool tdb_store_uint32_byblob(struct tdb_context *tdb, TDB_DATA key,
+				    uint32_t value)
 {
 	TDB_DATA data;
 	uint32_t v_store;
diff --git a/lib/util/util_tdb.h b/lib/util/util_tdb.h
index 63d80d1fb58..de82660f6ea 100644
--- a/lib/util/util_tdb.h
+++ b/lib/util/util_tdb.h
@@ -55,48 +55,24 @@ int tdb_read_lock_bystring(struct tdb_context *tdb, const char *keyval);
 void tdb_read_unlock_bystring(struct tdb_context *tdb, const char *keyval);
 
 /****************************************************************************
- Fetch a int32_t value by a arbitrary blob key, return -1 if not found.
- Output is int32_t in native byte order.
-****************************************************************************/
-int32_t tdb_fetch_int32_byblob(struct tdb_context *tdb, TDB_DATA key);
-
-/****************************************************************************
  Fetch a int32_t value by string key, return -1 if not found.
  Output is int32_t in native byte order.
 ****************************************************************************/
 int32_t tdb_fetch_int32(struct tdb_context *tdb, const char *keystr);
 
 /****************************************************************************
- Store a int32_t value by an arbitrary blob key, return 0 on success, -ve on failure.
- Input is int32_t in native byte order. Output in tdb is in little-endian.
-****************************************************************************/
-int tdb_store_int32_byblob(struct tdb_context *tdb, TDB_DATA key, int32_t v);
-
-/****************************************************************************
  Store a int32_t value by string key, return 0 on success, -ve on failure.
  Input is int32_t in native byte order. Output in tdb is in little-endian.
 ****************************************************************************/
 int tdb_store_int32(struct tdb_context *tdb, const char *keystr, int32_t v);
 
 /****************************************************************************
- Fetch a uint32_t value by a arbitrary blob key, return -1 if not found.
- Output is uint32_t in native byte order.
-****************************************************************************/
-bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t *value);
-
-/****************************************************************************
  Fetch a uint32_t value by string key, return -1 if not found.
  Output is uint32_t in native byte order.
 ****************************************************************************/
 bool tdb_fetch_uint32(struct tdb_context *tdb, const char *keystr, uint32_t *value);
 
 /****************************************************************************
- Store a uint32_t value by an arbitrary blob key, return true on success, false on failure.
- Input is uint32_t in native byte order. Output in tdb is in little-endian.
-****************************************************************************/
-bool tdb_store_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t value);
-
-/****************************************************************************
  Store a uint32_t value by string key, return true on success, false on failure.
  Input is uint32_t in native byte order. Output in tdb is in little-endian.
 ****************************************************************************/
-- 
2.11.0


From 4adf154324b44d8a853b5f9efc107ec2123fb63e Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Fri, 4 Aug 2017 10:44:59 +0200
Subject: [PATCH 05/10] smbd: Avoid an "else"

We always return in the if-branch before. The else is redundant

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/smbd/process.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index b65ae2c1b1c..11a5ae8314c 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1973,7 +1973,8 @@ static void process_smb(struct smbXsrv_connection *xconn,
 			size_t pdulen = nread - NBT_HDR_SIZE;
 			smbd_smb2_process_negprot(xconn, 0, inpdu, pdulen);
 			return;
-		} else if (nread >= smb_size && valid_smb_header(inbuf)
+		}
+		if (nread >= smb_size && valid_smb_header(inbuf)
 				&& CVAL(inbuf, smb_com) != 0x72) {
 			/* This is a non-negprot SMB1 packet.
 			   Disable SMB2 from now on. */
-- 
2.11.0


From 1ea18ad646c135efd0f44b06fd78090fa4ec106e Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sun, 12 Nov 2017 14:48:24 +0100
Subject: [PATCH 06/10] lib: Avoid a ZERO_STRUCT, save a few bytes .text

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/libnet/libnet_dssync.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/source3/libnet/libnet_dssync.c b/source3/libnet/libnet_dssync.c
index 267709e3c11..e593ae8536c 100644
--- a/source3/libnet/libnet_dssync.c
+++ b/source3/libnet/libnet_dssync.c
@@ -337,7 +337,6 @@ static NTSTATUS libnet_dssync_build_request(TALLOC_CTX *mem_ctx,
 	uint32_t count;
 	uint32_t level;
 	union drsuapi_DsGetNCChangesRequest req;
-	struct dom_sid null_sid;
 	enum drsuapi_DsExtendedOperation extended_op;
 	struct drsuapi_DsReplicaObjectIdentifier *nc = NULL;
 	struct drsuapi_DsReplicaCursorCtrEx *cursors = NULL;
@@ -348,7 +347,6 @@ static NTSTATUS libnet_dssync_build_request(TALLOC_CTX *mem_ctx,
 				  DRSUAPI_DRS_GET_ANC |
 				  DRSUAPI_DRS_NEVER_SYNCED;
 
-	ZERO_STRUCT(null_sid);
 	ZERO_STRUCT(req);
 
 	if (ctx->remote_info28.supported_extensions
@@ -366,7 +364,7 @@ static NTSTATUS libnet_dssync_build_request(TALLOC_CTX *mem_ctx,
 	}
 	nc->dn = dn;
 	nc->guid = GUID_zero();
-	nc->sid = null_sid;
+	nc->sid = (struct dom_sid) {0};
 
 	if (!ctx->single_object_replication &&
 	    !ctx->force_full_replication && utdv)
-- 
2.11.0


From 666246f70707b1ab51f23b314e72f2a6a29f19dc Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sun, 12 Nov 2017 14:48:24 +0100
Subject: [PATCH 07/10] rpcclient: Avoid a ZERO_STRUCT, save a few bytes .text

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/rpcclient/cmd_drsuapi.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/source3/rpcclient/cmd_drsuapi.c b/source3/rpcclient/cmd_drsuapi.c
index 6a1fac7bfad..b2221a713dd 100644
--- a/source3/rpcclient/cmd_drsuapi.c
+++ b/source3/rpcclient/cmd_drsuapi.c
@@ -328,7 +328,6 @@ static WERROR cmd_drsuapi_getncchanges(struct rpc_pipe_client *cli,
 	union drsuapi_DsGetNCChangesRequest req;
 	union drsuapi_DsGetNCChangesCtr ctr;
 	struct drsuapi_DsReplicaObjectIdentifier nc;
-	struct dom_sid null_sid;
 
 	struct drsuapi_DsGetNCChangesCtr1 *ctr1 = NULL;
 	struct drsuapi_DsGetNCChangesCtr6 *ctr6 = NULL;
@@ -362,7 +361,6 @@ static WERROR cmd_drsuapi_getncchanges(struct rpc_pipe_client *cli,
 
 	ZERO_STRUCT(info28);
 
-	ZERO_STRUCT(null_sid);
 	ZERO_STRUCT(req);
 
 	GUID_from_string(DRSUAPI_DS_BIND_GUID, &bind_guid);
@@ -463,7 +461,7 @@ static WERROR cmd_drsuapi_getncchanges(struct rpc_pipe_client *cli,
 
 	nc.dn = nc_dn;
 	nc.guid = GUID_zero();
-	nc.sid = null_sid;
+	nc.sid = (struct dom_sid) {0};
 
 	if (supported_extensions & DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8) {
 		level = 8;
-- 
2.11.0


From d3b036ca0fe02ea1ed4bee161237ec0b51326a94 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sun, 12 Nov 2017 14:55:40 +0100
Subject: [PATCH 08/10] lib: Save a few bytes of .text

Looks surprising, but this does save bytes if you look at the object with
"size".

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 libcli/security/util_sid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c
index 50133a14075..e84cfb48265 100644
--- a/libcli/security/util_sid.c
+++ b/libcli/security/util_sid.c
@@ -431,6 +431,6 @@ bool add_rid_to_array_unique(TALLOC_CTX *mem_ctx,
 
 bool is_null_sid(const struct dom_sid *sid)
 {
-	static const struct dom_sid null_sid = {0};
+	const struct dom_sid null_sid = {0};
 	return dom_sid_equal(sid, &null_sid);
 }
-- 
2.11.0


From 9f9bad08589a7ef183ba35ddee0dec9eb53170e8 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sun, 12 Nov 2017 16:07:48 +0100
Subject: [PATCH 09/10] dreplsrv: Use is_null_sid

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/dsdb/repl/drepl_partitions.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/source4/dsdb/repl/drepl_partitions.c b/source4/dsdb/repl/drepl_partitions.c
index 586da1983dc..83ea3586415 100644
--- a/source4/dsdb/repl/drepl_partitions.c
+++ b/source4/dsdb/repl/drepl_partitions.c
@@ -445,12 +445,10 @@ WERROR dreplsrv_partition_find_for_nc(struct dreplsrv_service *s,
 {
 	struct dreplsrv_partition *p;
 	bool valid_sid, valid_guid;
-	struct dom_sid null_sid;
-	ZERO_STRUCT(null_sid);
 
 	SMB_ASSERT(_p);
 
-	valid_sid  = nc_sid && !dom_sid_equal(&null_sid, nc_sid);
+	valid_sid  = nc_sid && !is_null_sid(nc_sid);
 	valid_guid = nc_guid && !GUID_all_zero(nc_guid);
 
 	if (!valid_sid && !valid_guid && (!nc_dn_str)) {
-- 
2.11.0


From 0fb33b4c51a99739d80f3fa5e68f7445cc01be62 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sun, 12 Nov 2017 16:09:35 +0100
Subject: [PATCH 10/10] smbtorture: Remove an unused variable

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/torture/drs/rpc/dssync.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/source4/torture/drs/rpc/dssync.c b/source4/torture/drs/rpc/dssync.c
index 27cc72f5613..67fde7c2b61 100644
--- a/source4/torture/drs/rpc/dssync.c
+++ b/source4/torture/drs/rpc/dssync.c
@@ -935,11 +935,9 @@ static bool test_FetchNT4Data(struct torture_context *tctx,
 	union drsuapi_DsGetNT4ChangeLogInfo info;
 	uint32_t level_out = 0;
 	struct GUID null_guid;
-	struct dom_sid null_sid;
 	DATA_BLOB cookie;
 
 	ZERO_STRUCT(null_guid);
-	ZERO_STRUCT(null_sid);
 	ZERO_STRUCT(cookie);
 
 	ZERO_STRUCT(r);
-- 
2.11.0



More information about the samba-technical mailing list