[PATCH] Some fixes for Solaris CC

Volker Lendecke Volker.Lendecke at SerNet.DE
Wed Jan 30 19:52:39 UTC 2019


Hi!

Review appreciated!

Thanks, Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: 0551-370000-0, mailto:kontakt at sernet.de
Gesch.F.: Dr. Johannes Loxen und Reinhild Jung
AG Göttingen: HR-B 2816 - http://www.sernet.de
-------------- next part --------------
From 45f80d318ee765eeeab45a7f771c9d2ddbb89428 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 24 Jan 2019 10:37:21 +0100
Subject: [PATCH 1/3] librpc: Solaris cc does not like unnamed struct members

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 librpc/ndr/ndr_compression.c | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/librpc/ndr/ndr_compression.c b/librpc/ndr/ndr_compression.c
index f06a076a71f..c4a13a2f3ba 100644
--- a/librpc/ndr/ndr_compression.c
+++ b/librpc/ndr/ndr_compression.c
@@ -34,7 +34,7 @@ struct ndr_compression_state {
 			uint8_t *dict;
 			size_t dict_size;
 		} mszip;
-	};
+	} alg;
 };
 
 static voidpf ndr_zlib_alloc(voidpf opaque, uInt items, uInt size)
@@ -59,7 +59,7 @@ static enum ndr_err_code ndr_pull_compression_mszip_cab_chunk(struct ndr_pull *n
 	DATA_BLOB plain_chunk;
 	uint32_t plain_chunk_offset;
 	uint32_t plain_chunk_size;
-	z_stream *z = state->mszip.z;
+	z_stream *z = state->alg.mszip.z;
 	int z_ret;
 
 	plain_chunk_size = decompressed_len;
@@ -125,8 +125,8 @@ static enum ndr_err_code ndr_pull_compression_mszip_cab_chunk(struct ndr_pull *n
 	 * uncompressed output as dictionnary.
 	 */
 
-	if (state->mszip.dict_size) {
-		z_ret = inflateSetDictionary(z, state->mszip.dict, state->mszip.dict_size);
+	if (state->alg.mszip.dict_size) {
+		z_ret = inflateSetDictionary(z, state->alg.mszip.dict, state->alg.mszip.dict_size);
 		if (z_ret != Z_OK) {
 			return ndr_pull_error(ndrpull, NDR_ERR_COMPRESSION,
 					      "zlib inflateSetDictionary error %s (%d) %s (PULL)",
@@ -164,8 +164,8 @@ static enum ndr_err_code ndr_pull_compression_mszip_cab_chunk(struct ndr_pull *n
 	 * we can just store that instead of copying the memory over
 	 * the dict temp buffer.
 	 */
-	state->mszip.dict = plain_chunk.data;
-	state->mszip.dict_size = plain_chunk.length;
+	state->alg.mszip.dict = plain_chunk.data;
+	state->alg.mszip.dict_size = plain_chunk.length;
 
 	z_ret = inflateReset(z);
 	if (z_ret != Z_OK) {
@@ -217,7 +217,7 @@ static enum ndr_err_code ndr_push_compression_mszip_cab_chunk(struct ndr_push *n
 	comp_chunk.data[0] = 'C';
 	comp_chunk.data[1] = 'K';
 
-	z = state->mszip.z;
+	z = state->alg.mszip.z;
 	z->next_in	= plain_chunk.data;
 	z->avail_in	= plain_chunk.length;
 	z->total_in	= 0;
@@ -234,8 +234,8 @@ static enum ndr_err_code ndr_push_compression_mszip_cab_chunk(struct ndr_push *n
 	 * same CFFOLDER as a dictionnary for the compression.
 	 */
 
-	if (state->mszip.dict_size) {
-		z_ret = deflateSetDictionary(z, state->mszip.dict, state->mszip.dict_size);
+	if (state->alg.mszip.dict_size) {
+		z_ret = deflateSetDictionary(z, state->alg.mszip.dict, state->alg.mszip.dict_size);
 		if (z_ret != Z_OK) {
 			return ndr_pull_error(ndrpull, NDR_ERR_COMPRESSION,
 					      "zlib deflateSetDictionary error %s (%d) %s (PUSH)",
@@ -274,7 +274,7 @@ static enum ndr_err_code ndr_push_compression_mszip_cab_chunk(struct ndr_push *n
 				      zError(z_ret), z_ret, z->msg);
 	}
 
-	if (plain_chunk.length > talloc_array_length(state->mszip.dict)) {
+	if (plain_chunk.length > talloc_array_length(state->alg.mszip.dict)) {
 		return ndr_pull_error(ndrpull, NDR_ERR_COMPRESSION,
 				      "zlib dict buffer is too big (PUSH)");
 	}
@@ -289,8 +289,8 @@ static enum ndr_err_code ndr_push_compression_mszip_cab_chunk(struct ndr_push *n
 	 * still going to been valid for the lifetime of the
 	 * compressions state object.
 	 */
-	memcpy(state->mszip.dict, plain_chunk.data, plain_chunk.length);
-	state->mszip.dict_size = plain_chunk.length;
+	memcpy(state->alg.mszip.dict, plain_chunk.data, plain_chunk.length);
+	state->alg.mszip.dict_size = plain_chunk.length;
 
 	DEBUG(9,("MSZIP comp plain_chunk_size: %08X (%u) comp_chunk_size: %08X (%u)\n",
 		 (unsigned int)plain_chunk.length,
@@ -805,11 +805,11 @@ static enum ndr_err_code generic_mszip_init(TALLOC_CTX *mem_ctx,
 	z->zfree  = ndr_zlib_free;
 	z->opaque = mem_ctx;
 
-	state->mszip.z = z;
-	state->mszip.dict_size = 0;
+	state->alg.mszip.z = z;
+	state->alg.mszip.dict_size = 0;
 	/* pre-alloc dictionnary */
-	state->mszip.dict = talloc_array(mem_ctx, uint8_t, 0x8000);
-	NDR_ERR_HAVE_NO_MEMORY(state->mszip.dict);
+	state->alg.mszip.dict = talloc_array(mem_ctx, uint8_t, 0x8000);
+	NDR_ERR_HAVE_NO_MEMORY(state->alg.mszip.dict);
 
 	return NDR_ERR_SUCCESS;
 }
@@ -820,8 +820,8 @@ static void generic_mszip_free(struct ndr_compression_state *state)
 		return;
 	}
 
-	TALLOC_FREE(state->mszip.z);
-	TALLOC_FREE(state->mszip.dict);
+	TALLOC_FREE(state->alg.mszip.z);
+	TALLOC_FREE(state->alg.mszip.dict);
 }
 
 
@@ -842,11 +842,11 @@ enum ndr_err_code ndr_pull_compression_state_init(struct ndr_pull *ndr,
 		break;
 	case NDR_COMPRESSION_MSZIP_CAB:
 		NDR_CHECK(generic_mszip_init(ndr, s));
-		z_ret = inflateInit2(s->mszip.z, -MAX_WBITS);
+		z_ret = inflateInit2(s->alg.mszip.z, -MAX_WBITS);
 		if (z_ret != Z_OK) {
 			return ndr_pull_error(ndr, NDR_ERR_COMPRESSION,
 					      "zlib inflateinit2 error %s (%d) %s (PULL)",
-					      zError(z_ret), z_ret, s->mszip.z->msg);
+					      zError(z_ret), z_ret, s->alg.mszip.z->msg);
 		}
 		break;
 	default:
@@ -897,7 +897,7 @@ enum ndr_err_code ndr_push_compression_state_init(struct ndr_push *ndr,
 		break;
 	case NDR_COMPRESSION_MSZIP_CAB:
 		NDR_CHECK(generic_mszip_init(ndr, s));
-		z_ret = deflateInit2(s->mszip.z,
+		z_ret = deflateInit2(s->alg.mszip.z,
 				     Z_DEFAULT_COMPRESSION,
 				     Z_DEFLATED,
 				     -MAX_WBITS,
@@ -906,7 +906,7 @@ enum ndr_err_code ndr_push_compression_state_init(struct ndr_push *ndr,
 		if (z_ret != Z_OK) {
 			return ndr_push_error(ndr, NDR_ERR_COMPRESSION,
 					      "zlib inflateinit2 error %s (%d) %s (PUSH)",
-					      zError(z_ret), z_ret, s->mszip.z->msg);
+					      zError(z_ret), z_ret, s->alg.mszip.z->msg);
 		}
 		break;
 	default:
-- 
2.11.0


From 20ce6db406ab77e5f47947bd6fd8dc9f58ff4062 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 24 Jan 2019 10:38:41 +0100
Subject: [PATCH 2/3] libcli: Solaris cc can't return void values

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 libcli/auth/tests/ntlm_check.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libcli/auth/tests/ntlm_check.c b/libcli/auth/tests/ntlm_check.c
index 65c7b086008..886a1a342f8 100644
--- a/libcli/auth/tests/ntlm_check.c
+++ b/libcli/auth/tests/ntlm_check.c
@@ -180,7 +180,7 @@ static void test_ntlm_allowed(void **state)
 
 static void test_ntlm_allowed_lm_supplied(void **state)
 {
-	return test_ntlm_allowed(state);
+	test_ntlm_allowed(state);
 }
 
 static void test_ntlm_disabled(void **state)
@@ -345,7 +345,7 @@ static void test_ntlmv2_only_ntlm(void **state)
 
 static void test_ntlmv2_only_ntlm_and_lanman(void **state)
 {
-	return test_ntlmv2_only_ntlm(state);
+	test_ntlmv2_only_ntlm(state);
 }
 
 static void test_ntlmv2_only_ntlm_once(void **state)
-- 
2.11.0


From 9d1898b0b533559dfc82cae94b7004947948b368 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 24 Jan 2019 10:39:38 +0100
Subject: [PATCH 3/3] torture4: Solaris cc can't deal with empty initializers

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/torture/smb2/delete-on-close.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/source4/torture/smb2/delete-on-close.c b/source4/torture/smb2/delete-on-close.c
index 12cdb8540b8..441ca96309e 100644
--- a/source4/torture/smb2/delete-on-close.c
+++ b/source4/torture/smb2/delete-on-close.c
@@ -584,9 +584,9 @@ static bool test_doc_read_only(struct torture_context *tctx,
 			       struct smb2_tree *tree)
 {
 	struct smb2_handle dir_handle;
-	union smb_setfileinfo sfinfo = { };
-	struct smb2_create create = { };
-	struct smb2_close close = { };
+	union smb_setfileinfo sfinfo = {0};
+	struct smb2_create create = {0};
+	struct smb2_close close = {0};
 	NTSTATUS status, expected_status;
 	bool ret = true, delete_readonly;
 
@@ -603,7 +603,7 @@ static bool test_doc_read_only(struct torture_context *tctx,
 	torture_assert_ntstatus_ok_goto(tctx, status, ret, done,
 					"CREATE directory failed\n");
 
-	create = (struct smb2_create) { };
+	create = (struct smb2_create) {0};
 	create.in.desired_access = SEC_RIGHTS_DIR_ALL;
 	create.in.create_options = NTCREATEX_OPTIONS_NON_DIRECTORY_FILE |
 		NTCREATEX_OPTIONS_DELETE_ON_CLOSE;
@@ -628,7 +628,7 @@ static bool test_doc_read_only(struct torture_context *tctx,
 
 	torture_comment(tctx, "Creating file with READ_ONLY attribute.\n");
 
-	create = (struct smb2_create) { };
+	create = (struct smb2_create) {0};
 	create.in.desired_access = SEC_RIGHTS_DIR_ALL;
 	create.in.create_options = NTCREATEX_OPTIONS_NON_DIRECTORY_FILE;
 	create.in.file_attributes = FILE_ATTRIBUTE_READONLY;
@@ -649,7 +649,7 @@ static bool test_doc_read_only(struct torture_context *tctx,
 	torture_comment(tctx, "Testing CREATE with DELETE_ON_CLOSE on "
 			"READ_ONLY attribute file.\n");
 
-	create = (struct smb2_create) { };
+	create = (struct smb2_create) {0};
 	create.in.desired_access = SEC_RIGHTS_FILE_READ | SEC_STD_DELETE;
 	create.in.create_options = NTCREATEX_OPTIONS_DELETE_ON_CLOSE;
 	create.in.file_attributes = 0;
@@ -667,7 +667,7 @@ static bool test_doc_read_only(struct torture_context *tctx,
 	torture_comment(tctx, "Testing setting DELETE_ON_CLOSE disposition on "
 			" file with READONLY attribute.\n");
 
-	create = (struct smb2_create) { };
+	create = (struct smb2_create) {0};
 	create.in.desired_access = SEC_RIGHTS_FILE_READ | SEC_STD_DELETE;;
 	create.in.create_options = 0;
 	create.in.file_attributes = 0;
-- 
2.11.0



More information about the samba-technical mailing list