[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Thu Nov 26 11:08:02 UTC 2020
The branch, master has been updated
via 1a86474912d s3:libsmb: Return early if dir is NULL
via 6d021d64c65 s3:mdssd: Fix creating binding string for error message
via b20da08d413 s3:lsasd: Fix creating binding string for error message
via 35e977156c7 s3:spoolssd: Fix creating binding string for error message
via 12b9e4408d7 winexe: Fix a possible null pointer derference
via 6123bd25ada s3:libsmb: Fix clang warnings that fnum might be used uninitialized
from 53274d11488 samba_upgradedns: Do not print confusing logs about missing .zone files
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 1a86474912d98dbecd45ee1f85009bcab77ea7b9
Author: Andreas Schneider <asn at samba.org>
Date: Wed Nov 25 13:01:46 2020 +0100
s3:libsmb: Return early if dir is NULL
This makes sure we do not dereference a NULL poineter.
Found by covscan.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Thu Nov 26 11:07:09 UTC 2020 on sn-devel-184
commit 6d021d64c651b73d4e904240d62dbaf992cf4634
Author: Andreas Schneider <asn at samba.org>
Date: Wed Nov 25 12:55:56 2020 +0100
s3:mdssd: Fix creating binding string for error message
Found by covscan.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b20da08d4135d73548bde1452603108fffc29f6d
Author: Andreas Schneider <asn at samba.org>
Date: Wed Nov 25 12:55:24 2020 +0100
s3:lsasd: Fix creating binding string for error message
Found by covscan.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 35e977156c779a1405a7eadba794fb45fb41f625
Author: Andreas Schneider <asn at samba.org>
Date: Wed Nov 25 11:46:05 2020 +0100
s3:spoolssd: Fix creating binding string for error message
Found by covscan.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 12b9e4408d7e1edd1741d5afdf359bca82d3f75e
Author: Andreas Schneider <asn at samba.org>
Date: Wed Nov 25 11:38:01 2020 +0100
winexe: Fix a possible null pointer derference
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 6123bd25ada0058973fe2ef8a13d59219c39255a
Author: Andreas Schneider <asn at samba.org>
Date: Wed Nov 25 11:34:09 2020 +0100
s3:libsmb: Fix clang warnings that fnum might be used uninitialized
Found by covscan.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
examples/winexe/winexe.c | 22 +++++++++++++---------
source3/libsmb/cli_smb2_fnum.c | 8 ++++----
source3/libsmb/libsmb_dir.c | 16 +++++++++-------
source3/printing/spoolssd.c | 7 +++++--
source3/rpc_server/lsasd.c | 7 +++++--
source3/rpc_server/mdssd.c | 7 +++++--
6 files changed, 41 insertions(+), 26 deletions(-)
Changeset truncated at 500 lines:
diff --git a/examples/winexe/winexe.c b/examples/winexe/winexe.c
index 95386211c0a..529858ccbb8 100644
--- a/examples/winexe/winexe.c
+++ b/examples/winexe/winexe.c
@@ -347,7 +347,7 @@ static NTSTATUS winexe_svc_upload(
int flags)
{
struct cli_state *cli;
- uint16_t fnum;
+ uint16_t fnum = 0xffff;
NTSTATUS status;
const DATA_BLOB *binary = NULL;
@@ -389,7 +389,7 @@ static NTSTATUS winexe_svc_upload(
}
if (binary == NULL) {
- //TODO
+ goto done;
}
status = cli_ntcreate(
@@ -420,16 +420,20 @@ static NTSTATUS winexe_svc_upload(
NULL);
if (!NT_STATUS_IS_OK(status)) {
DBG_WARNING("Could not write file: %s\n", nt_errstr(status));
- goto close_done;
+ goto done;
}
-close_done:
- status = cli_close(cli, fnum);
- if (!NT_STATUS_IS_OK(status)) {
- DBG_WARNING("Close(%"PRIu16") failed for %s: %s\n", fnum,
- service_filename, nt_errstr(status));
- }
done:
+ if (fnum != 0xffff) {
+ status = cli_close(cli, fnum);
+ if (!NT_STATUS_IS_OK(status)) {
+ DBG_WARNING("Close(%"PRIu16") failed for %s: %s\n",
+ fnum,
+ service_filename,
+ nt_errstr(status));
+ }
+ }
+
TALLOC_FREE(cli);
return status;
}
diff --git a/source3/libsmb/cli_smb2_fnum.c b/source3/libsmb/cli_smb2_fnum.c
index 2dd76de967a..f70639e41bd 100644
--- a/source3/libsmb/cli_smb2_fnum.c
+++ b/source3/libsmb/cli_smb2_fnum.c
@@ -815,7 +815,7 @@ static void cli_smb2_mkdir_opened(struct tevent_req *subreq)
struct cli_smb2_mkdir_state *state = tevent_req_data(
req, struct cli_smb2_mkdir_state);
NTSTATUS status;
- uint16_t fnum;
+ uint16_t fnum = 0xffff;
status = cli_smb2_create_fnum_recv(subreq, &fnum, NULL, NULL, NULL);
TALLOC_FREE(subreq);
@@ -1082,7 +1082,7 @@ static void cli_smb2_unlink_opened1(struct tevent_req *subreq)
subreq, struct tevent_req);
struct cli_smb2_unlink_state *state = tevent_req_data(
req, struct cli_smb2_unlink_state);
- uint16_t fnum;
+ uint16_t fnum = 0xffff;
NTSTATUS status;
status = cli_smb2_create_fnum_recv(subreq, &fnum, NULL, NULL, NULL);
@@ -1135,7 +1135,7 @@ static void cli_smb2_unlink_opened2(struct tevent_req *subreq)
subreq, struct tevent_req);
struct cli_smb2_unlink_state *state = tevent_req_data(
req, struct cli_smb2_unlink_state);
- uint16_t fnum;
+ uint16_t fnum = 0xffff;
NTSTATUS status;
status = cli_smb2_create_fnum_recv(subreq, &fnum, NULL, NULL, NULL);
@@ -1682,7 +1682,7 @@ static void cli_smb2_chkpath_opened(struct tevent_req *subreq)
struct cli_smb2_chkpath_state *state = tevent_req_data(
req, struct cli_smb2_chkpath_state);
NTSTATUS status;
- uint16_t fnum;
+ uint16_t fnum = 0xffff;
status = cli_smb2_create_fnum_recv(subreq, &fnum, NULL, NULL, NULL);
TALLOC_FREE(subreq);
diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c
index 27d0fbd4db5..f1596b743ef 100644
--- a/source3/libsmb/libsmb_dir.c
+++ b/source3/libsmb/libsmb_dir.c
@@ -1041,14 +1041,19 @@ int
SMBC_closedir_ctx(SMBCCTX *context,
SMBCFILE *dir)
{
- TALLOC_CTX *frame = talloc_stackframe();
+ TALLOC_CTX *frame = NULL;
if (!context || !context->internal->initialized) {
errno = EINVAL;
- TALLOC_FREE(frame);
return -1;
}
+ if (dir == NULL) {
+ return 0;
+ }
+
+ frame = talloc_stackframe();
+
if (!SMBC_dlist_contains(context->internal->files, dir)) {
errno = EBADF;
TALLOC_FREE(frame);
@@ -1060,11 +1065,8 @@ SMBC_closedir_ctx(SMBCCTX *context,
DLIST_REMOVE(context->internal->files, dir);
- if (dir) {
-
- SAFE_FREE(dir->fname);
- SAFE_FREE(dir); /* Free the space too */
- }
+ SAFE_FREE(dir->fname);
+ SAFE_FREE(dir); /* Free the space too */
TALLOC_FREE(frame);
return 0;
diff --git a/source3/printing/spoolssd.c b/source3/printing/spoolssd.c
index bf10b19e4a0..babec72e299 100644
--- a/source3/printing/spoolssd.c
+++ b/source3/printing/spoolssd.c
@@ -611,8 +611,11 @@ static NTSTATUS spoolssd_create_sockets(struct tevent_context *ev_ctx,
for (i = 0; i < *listen_fd_size; i++) {
rc = listen(listen_fd[i].fd, pf_spoolss_cfg.max_allowed_clients);
if (rc == -1) {
- char *ep_string = dcerpc_binding_string(
- dce_ctx, e->ep_description);
+ char *ep_string = NULL;
+
+ e = listen_fd[i].fd_data;
+ ep_string = dcerpc_binding_string(dce_ctx,
+ e->ep_description);
DBG_ERR("Failed to listen on endpoint '%s': %s\n",
ep_string, strerror(errno));
status = map_nt_error_from_unix(errno);
diff --git a/source3/rpc_server/lsasd.c b/source3/rpc_server/lsasd.c
index aeeb4d7f10d..2c1fc2db5d0 100644
--- a/source3/rpc_server/lsasd.c
+++ b/source3/rpc_server/lsasd.c
@@ -576,8 +576,11 @@ static NTSTATUS lsasd_create_sockets(struct tevent_context *ev_ctx,
for (i = 0; i < *listen_fd_size; i++) {
rc = listen(listen_fd[i].fd, pf_lsasd_cfg.max_allowed_clients);
if (rc == -1) {
- char *ep_string = dcerpc_binding_string(
- dce_ctx, e->ep_description);
+ char *ep_string = NULL;
+
+ e = listen_fd[i].fd_data;
+ ep_string = dcerpc_binding_string(dce_ctx,
+ e->ep_description);
DBG_ERR("Failed to listen on endpoint '%s': %s\n",
ep_string, strerror(errno));
status = map_nt_error_from_unix(errno);
diff --git a/source3/rpc_server/mdssd.c b/source3/rpc_server/mdssd.c
index baab1039e2e..d4ef815cd6c 100644
--- a/source3/rpc_server/mdssd.c
+++ b/source3/rpc_server/mdssd.c
@@ -526,8 +526,11 @@ static NTSTATUS mdssd_create_sockets(struct tevent_context *ev_ctx,
for (i = 0; i < *listen_fd_size; i++) {
rc = listen(listen_fd[i].fd, pf_mdssd_cfg.max_allowed_clients);
if (rc == -1) {
- char *ep_string = dcerpc_binding_string(
- dce_ctx, e->ep_description);
+ char *ep_string = NULL;
+
+ e = listen_fd[i].fd_data;
+ ep_string = dcerpc_binding_string(dce_ctx,
+ e->ep_description);
DBG_ERR("Failed to listen on endpoint '%s': %s\n",
ep_string, strerror(errno));
status = map_nt_error_from_unix(errno);
--
Samba Shared Repository
More information about the samba-cvs
mailing list