The branch, master has been updated
via 504866860df smbd: Modernize DBGs
via 48a19c5fbff smbd: Avoid a ZERO_STRUCT with an explicit
initialization
via f3f5a56c5eb smbd: Fix CID 1508939 Use of 32-bit time_t
via 35a7c99d992 rpc_server: Remove a leftover from before
str_list_add_printf()
via 7653cfa1e62 smbd: Make safe_symlink_target_path() static
via 54160736c84 librpc: Fix whitespace
via ea634953063 libcli: Avoid a ZERO_STRUCT with a direct initialization
via 3c76c3989c9 net: Fix a panic in "net vfs getntacl"
via 9ac5f58a264 libndr: Simplify indentation in ndr_print
via 898dcd99363 lib: Use metadata_fsp() where appropriate
via 39ab4a25c26 smbd: Fix whitespace
from 13521f85ad3 s3:auth: Fix Coverity ID 1646934: memory leak in
make_pw_chat
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 504866860dffe09f1073d01486eb10342fb7cad3
Author: Volker Lendecke <[email protected]>
Date: Mon Mar 31 10:27:13 2025 +0200
smbd: Modernize DBGs
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
Autobuild-User(master): Martin Schwenke <[email protected]>
Autobuild-Date(master): Sat Jun 14 09:49:16 UTC 2025 on atb-devel-224
commit 48a19c5fbff3cf43ba43d8940c5b77bc025a99fa
Author: Volker Lendecke <[email protected]>
Date: Mon Feb 24 21:04:32 2025 +0100
smbd: Avoid a ZERO_STRUCT with an explicit initialization
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit f3f5a56c5eb53bfd3d78998872249c32f6759618
Author: Volker Lendecke <[email protected]>
Date: Wed Apr 2 12:30:25 2025 +0200
smbd: Fix CID 1508939 Use of 32-bit time_t
This will pop up somewhere else, but this one was easy to fix.
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 35a7c99d992a72786bb0684f987d0e926604ade3
Author: Volker Lendecke <[email protected]>
Date: Sun Mar 23 17:57:37 2025 +0100
rpc_server: Remove a leftover from before str_list_add_printf()
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 7653cfa1e6280ab8270687d858b93a29b2e3f026
Author: Volker Lendecke <[email protected]>
Date: Sun Mar 30 20:28:11 2025 +0200
smbd: Make safe_symlink_target_path() static
Only used once
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 54160736c8482ad06066797d2033cb710caf7059
Author: Volker Lendecke <[email protected]>
Date: Sun Mar 23 17:03:16 2025 +0100
librpc: Fix whitespace
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit ea63495306372339a885fecbc825599f10c193b1
Author: Volker Lendecke <[email protected]>
Date: Tue Jun 10 09:55:58 2025 +0200
libcli: Avoid a ZERO_STRUCT with a direct initialization
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 3c76c3989c9628a5e4c4e704185f4257620deccd
Author: Volker Lendecke <[email protected]>
Date: Thu Mar 20 17:57:11 2025 +0100
net: Fix a panic in "net vfs getntacl"
We have to explicitly free smb_fname, because after openat_pathref_fsp
we have a file descriptor around. If we then later talloc_free() the
connection_struct, fd_handle_destructor() panics because talloc_free()
does not free smb_fname before the connection_struct.
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 9ac5f58a264cb889898cc7bfc844192d6fad8139
Author: Volker Lendecke <[email protected]>
Date: Sat Jun 7 11:34:18 2025 +0200
libndr: Simplify indentation in ndr_print
printf can take care of the for-loop
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 898dcd99363d96c45054bb9b7ec2aa9cf26e5d02
Author: Volker Lendecke <[email protected]>
Date: Sat Jun 7 10:54:56 2025 +0200
lib: Use metadata_fsp() where appropriate
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
commit 39ab4a25c26b8a82a28fe1d4755f875a40f2e365
Author: Volker Lendecke <[email protected]>
Date: Sat Jun 7 11:05:55 2025 +0200
smbd: Fix whitespace
Signed-off-by: Volker Lendecke <[email protected]>
Reviewed-by: Martin Schwenke <[email protected]>
-----------------------------------------------------------------------
Summary of changes:
libcli/smb/smbXcli_base.c | 4 +---
librpc/ndr/ndr.c | 31 ++++++++---------------------
librpc/ndr/ndr_dnsp.c | 5 +----
librpc/rpc/binding.c | 46 +++++++++++++++++++++----------------------
librpc/rpc/rpc_common.h | 4 ++--
source3/include/proto.h | 6 ------
source3/lib/adouble.c | 2 +-
source3/locking/locking.c | 2 +-
source3/rpc_server/rpc_host.c | 5 -----
source3/smbd/filename.c | 12 +++++------
source3/smbd/msdfs.c | 4 ++--
source3/smbd/smb1_reply.c | 2 +-
source3/smbd/smb2_trans2.c | 8 ++++----
source3/utils/net_vfs.c | 1 +
source4/librpc/ndr/py_xattr.c | 7 ++-----
15 files changed, 53 insertions(+), 86 deletions(-)
Changeset truncated at 500 lines:
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c
index d1e36a3fa1e..bf0ffb83702 100644
--- a/libcli/smb/smbXcli_base.c
+++ b/libcli/smb/smbXcli_base.c
@@ -4485,7 +4485,7 @@ static void smbXcli_negprot_smb1_done(struct tevent_req
*subreq)
bool server_writeunlock = false;
struct GUID server_guid = GUID_zero();
DATA_BLOB server_gss_blob = data_blob_null;
- uint8_t server_challenge[8];
+ uint8_t server_challenge[8] = {};
char *server_workgroup = NULL;
char *server_name = NULL;
int server_time_zone = 0;
@@ -4505,8 +4505,6 @@ static void smbXcli_negprot_smb1_done(struct tevent_req
*subreq)
}
};
- ZERO_STRUCT(server_challenge);
-
status = smb1cli_req_recv(subreq, state,
&recv_iov,
&inhdr,
diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c
index 896f682d2c2..082bacc2fa6 100644
--- a/librpc/ndr/ndr.c
+++ b/librpc/ndr/ndr.c
@@ -305,7 +305,6 @@ _PUBLIC_ void ndr_print_debugc_helper(struct ndr_print
*ndr, const char *format,
{
va_list ap;
char *s = NULL;
- uint32_t i;
int ret;
int dbgc_class;
@@ -325,11 +324,7 @@ _PUBLIC_ void ndr_print_debugc_helper(struct ndr_print
*ndr, const char *format,
return;
}
- for (i=0;i<ndr->depth;i++) {
- DEBUGADDC(dbgc_class, 1,(" "));
- }
-
- DEBUGADDC(dbgc_class, 1,("%s\n", s));
+ DEBUGADDC(dbgc_class, 1, ("%*.s\n", 4 * ndr->depth, s));
free(s);
}
@@ -337,7 +332,6 @@ _PUBLIC_ void ndr_print_debug_helper(struct ndr_print *ndr,
const char *format,
{
va_list ap;
char *s = NULL;
- uint32_t i;
int ret;
va_start(ap, format);
@@ -354,23 +348,16 @@ _PUBLIC_ void ndr_print_debug_helper(struct ndr_print
*ndr, const char *format,
return;
}
- for (i=0;i<ndr->depth;i++) {
- DEBUGADD(1,(" "));
- }
-
- DEBUGADD(1,("%s\n", s));
+ DEBUGADD(1, ("%*.s%s\n", 4 * ndr->depth, "", s));
free(s);
}
_PUBLIC_ void ndr_print_printf_helper(struct ndr_print *ndr, const char
*format, ...)
{
va_list ap;
- uint32_t i;
if (!ndr->no_newline) {
- for (i=0;i<ndr->depth;i++) {
- printf(" ");
- }
+ printf("%*.s", 4 * ndr->depth, "");
}
va_start(ap, format);
@@ -384,13 +371,12 @@ _PUBLIC_ void ndr_print_printf_helper(struct ndr_print
*ndr, const char *format,
_PUBLIC_ void ndr_print_string_helper(struct ndr_print *ndr, const char
*format, ...)
{
va_list ap;
- uint32_t i;
if (!ndr->no_newline) {
- for (i=0;i<ndr->depth;i++) {
- ndr->private_data = talloc_asprintf_append_buffer(
- (char *)ndr->private_data, " ");
- }
+ talloc_asprintf_addbuf((char **)&ndr->private_data,
+ "%*.s",
+ ndr->depth * 4,
+ "");
}
va_start(ap, format);
@@ -398,8 +384,7 @@ _PUBLIC_ void ndr_print_string_helper(struct ndr_print
*ndr, const char *format,
format, ap);
va_end(ap);
if (!ndr->no_newline) {
- ndr->private_data = talloc_asprintf_append_buffer((char
*)ndr->private_data,
- "\n");
+ talloc_asprintf_addbuf((char **)&ndr->private_data, "\n");
}
}
diff --git a/librpc/ndr/ndr_dnsp.c b/librpc/ndr/ndr_dnsp.c
index 2f218edade4..43efa3466d7 100644
--- a/librpc/ndr/ndr_dnsp.c
+++ b/librpc/ndr/ndr_dnsp.c
@@ -193,10 +193,7 @@ _PUBLIC_ void ndr_print_dnsp_string_list(struct ndr_print
*ndr, const char *name
uint32_t i;
ndr->no_newline = true;
- for (i=0; i<ndr->depth; i++) {
- ndr->print(ndr, " ");
- }
- ndr->print(ndr, "%-25s:", name);
+ ndr->print(ndr, "%*.s%-25s:", 4 * ndr->depth, "", name);
for (i=0; i<list->count; i++) {
ndr->print(ndr, " \"%s\"", list->str[i]);
}
diff --git a/librpc/rpc/binding.c b/librpc/rpc/binding.c
index eaf3430c9d3..e0d66303583 100644
--- a/librpc/rpc/binding.c
+++ b/librpc/rpc/binding.c
@@ -1,4 +1,4 @@
-/*
+/*
Unix SMB/CIFS implementation.
dcerpc utility functions
@@ -55,34 +55,34 @@ static const struct {
int num_protocols;
enum epm_protocol protseq[MAX_PROTSEQ];
} transports[] = {
- { "ncacn_np", NCACN_NP, 3,
+ { "ncacn_np", NCACN_NP, 3,
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_SMB, EPM_PROTOCOL_NETBIOS }},
- { "ncacn_ip_tcp", NCACN_IP_TCP, 3,
- { EPM_PROTOCOL_NCACN, EPM_PROTOCOL_TCP, EPM_PROTOCOL_IP } },
- { "ncacn_http", NCACN_HTTP, 3,
- { EPM_PROTOCOL_NCACN, EPM_PROTOCOL_HTTP, EPM_PROTOCOL_IP } },
- { "ncadg_ip_udp", NCACN_IP_UDP, 3,
+ { "ncacn_ip_tcp", NCACN_IP_TCP, 3,
+ { EPM_PROTOCOL_NCACN, EPM_PROTOCOL_TCP, EPM_PROTOCOL_IP } },
+ { "ncacn_http", NCACN_HTTP, 3,
+ { EPM_PROTOCOL_NCACN, EPM_PROTOCOL_HTTP, EPM_PROTOCOL_IP } },
+ { "ncadg_ip_udp", NCACN_IP_UDP, 3,
{ EPM_PROTOCOL_NCADG, EPM_PROTOCOL_UDP, EPM_PROTOCOL_IP } },
- { "ncalrpc", NCALRPC, 2,
+ { "ncalrpc", NCALRPC, 2,
{ EPM_PROTOCOL_NCALRPC, EPM_PROTOCOL_NAMED_PIPE } },
- { "ncacn_unix_stream", NCACN_UNIX_STREAM, 2,
+ { "ncacn_unix_stream", NCACN_UNIX_STREAM, 2,
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_UNIX_DS } },
- { "ncadg_unix_dgram", NCADG_UNIX_DGRAM, 2,
+ { "ncadg_unix_dgram", NCADG_UNIX_DGRAM, 2,
{ EPM_PROTOCOL_NCADG, EPM_PROTOCOL_UNIX_DS } },
- { "ncacn_at_dsp", NCACN_AT_DSP, 3,
+ { "ncacn_at_dsp", NCACN_AT_DSP, 3,
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_APPLETALK, EPM_PROTOCOL_DSP
} },
- { "ncadg_at_ddp", NCADG_AT_DDP, 3,
+ { "ncadg_at_ddp", NCADG_AT_DDP, 3,
{ EPM_PROTOCOL_NCADG, EPM_PROTOCOL_APPLETALK, EPM_PROTOCOL_DDP
} },
- { "ncacn_vns_ssp", NCACN_VNS_SPP, 3,
+ { "ncacn_vns_ssp", NCACN_VNS_SPP, 3,
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_STREETTALK,
EPM_PROTOCOL_VINES_SPP } },
- { "ncacn_vns_ipc", NCACN_VNS_IPC, 3,
+ { "ncacn_vns_ipc", NCACN_VNS_IPC, 3,
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_STREETTALK,
EPM_PROTOCOL_VINES_IPC }, },
{ "ncadg_ipx", NCADG_IPX, 2,
{ EPM_PROTOCOL_NCADG, EPM_PROTOCOL_IPX },
},
{ "ncacn_spx", NCACN_SPX, 3,
- /* I guess some MS programmer confused the identifier for
- * EPM_PROTOCOL_UUID (0x0D or 13) with the one for
+ /* I guess some MS programmer confused the identifier for
+ * EPM_PROTOCOL_UUID (0x0D or 13) with the one for
* EPM_PROTOCOL_SPX (0x13) here. -- jelmer*/
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_NCALRPC, EPM_PROTOCOL_UUID },
},
@@ -141,11 +141,11 @@ const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct
epm_floor *epm_floor)
if (GUID_equal(&syntax.uuid,
&ndr_transfer_syntax_ndr.uuid)) {
return "NDR";
- }
+ }
if (GUID_equal(&syntax.uuid,
&ndr_transfer_syntax_ndr64.uuid)) {
return "NDR64";
- }
+ }
return talloc_asprintf(
mem_ctx,
@@ -153,7 +153,7 @@ const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct
epm_floor *epm_floor)
GUID_buf_string(&syntax.uuid, &buf),
syntax.if_version);
} else { /* IPX */
- return talloc_asprintf(mem_ctx, "IPX:%s",
+ return talloc_asprintf(mem_ctx, "IPX:%s",
data_blob_hex_string_upper(mem_ctx, &epm_floor->rhs.uuid.unknown));
}
@@ -1092,8 +1092,8 @@ char *dcerpc_floor_get_rhs_data(TALLOC_CTX *mem_ctx,
struct epm_floor *epm_floor
return NULL;
}
-static NTSTATUS dcerpc_floor_set_rhs_data(TALLOC_CTX *mem_ctx,
- struct epm_floor *epm_floor,
+static NTSTATUS dcerpc_floor_set_rhs_data(TALLOC_CTX *mem_ctx,
+ struct epm_floor *epm_floor,
const char *data)
{
if (data == NULL) {
@@ -1182,7 +1182,7 @@ enum dcerpc_transport_t
dcerpc_transport_by_endpoint_protocol(int prot)
/* Find a transport that has 'prot' as 4th protocol */
for (i=0;i<ARRAY_SIZE(transports);i++) {
- if (transports[i].num_protocols >= 2 &&
+ if (transports[i].num_protocols >= 2 &&
transports[i].protseq[1] == prot) {
return transports[i].transport;
}
@@ -1200,7 +1200,7 @@ _PUBLIC_ enum dcerpc_transport_t
dcerpc_transport_by_tower(const struct epm_towe
for (i=0;i<ARRAY_SIZE(transports);i++) {
int j;
if (transports[i].num_protocols != tower->num_floors - 2) {
- continue;
+ continue;
}
for (j = 0; j < transports[i].num_protocols && j < MAX_PROTSEQ;
j++) {
diff --git a/librpc/rpc/rpc_common.h b/librpc/rpc/rpc_common.h
index 2ec411653bc..d7559b5fc6f 100644
--- a/librpc/rpc/rpc_common.h
+++ b/librpc/rpc/rpc_common.h
@@ -43,8 +43,8 @@ struct tstream_context;
struct gensec_security;
enum dcerpc_transport_t {
- NCA_UNKNOWN, NCACN_NP, NCACN_IP_TCP, NCACN_IP_UDP, NCACN_VNS_IPC,
- NCACN_VNS_SPP, NCACN_AT_DSP, NCADG_AT_DDP, NCALRPC, NCACN_UNIX_STREAM,
+ NCA_UNKNOWN, NCACN_NP, NCACN_IP_TCP, NCACN_IP_UDP, NCACN_VNS_IPC,
+ NCACN_VNS_SPP, NCACN_AT_DSP, NCADG_AT_DDP, NCALRPC, NCACN_UNIX_STREAM,
NCADG_UNIX_DGRAM, NCACN_HTTP, NCADG_IPX, NCACN_SPX, NCACN_INTERNAL };
/** this describes a binding to a particular transport/pipe */
diff --git a/source3/include/proto.h b/source3/include/proto.h
index da0d0cb7dfe..9f4ab67ea64 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -668,12 +668,6 @@ struct smb_filename *synthetic_smb_fname(TALLOC_CTX
*mem_ctx,
const SMB_STRUCT_STAT *psbuf,
NTTIME twrp,
uint32_t flags);
-NTSTATUS safe_symlink_target_path(TALLOC_CTX *mem_ctx,
- const char *connectpath,
- const char *dir,
- const char *target,
- size_t unparsed,
- char **_relative);
struct reparse_data_buffer;
NTSTATUS
filename_convert_dirfsp_nosymlink(TALLOC_CTX *mem_ctx,
diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c
index f8ae89d670c..9d22dafeb63 100644
--- a/source3/lib/adouble.c
+++ b/source3/lib/adouble.c
@@ -2697,7 +2697,7 @@ int ad_fset(struct vfs_handle_struct *handle,
switch (ad->ad_type) {
case ADOUBLE_META:
rc = SMB_VFS_NEXT_FSETXATTR(handle,
- fsp->base_fsp ? fsp->base_fsp : fsp,
+ metadata_fsp(fsp),
AFPINFO_EA_NETATALK,
ad->ad_data,
AD_DATASZ_XATTR, 0);
diff --git a/source3/locking/locking.c b/source3/locking/locking.c
index 9a45424cf3d..cebdb311b4b 100644
--- a/source3/locking/locking.c
+++ b/source3/locking/locking.c
@@ -1,4 +1,4 @@
-/*
+/*
Unix SMB/CIFS implementation.
Locking functions
Copyright (C) Andrew Tridgell 1992-2000
diff --git a/source3/rpc_server/rpc_host.c b/source3/rpc_server/rpc_host.c
index 5232c5f17fa..b88cdf48cc3 100644
--- a/source3/rpc_server/rpc_host.c
+++ b/source3/rpc_server/rpc_host.c
@@ -268,11 +268,6 @@ static struct tevent_req *rpc_server_get_endpoints_send(
return tevent_req_post(req, ev);
}
- state->argl = talloc_array(state, char *, 4);
- if (tevent_req_nomem(state->argl, req)) {
- return tevent_req_post(req, ev);
- }
-
state->argl = str_list_make_empty(state);
str_list_add_printf(&state->argl, "%s", rpc_server_exe);
str_list_add_printf(&state->argl, "--list-interfaces");
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
index e4234178c0d..6a9d5f99d2a 100644
--- a/source3/smbd/filename.c
+++ b/source3/smbd/filename.c
@@ -595,12 +595,12 @@ static NTSTATUS filename_convert_normalize_new(
return NT_STATUS_OK;
}
-NTSTATUS safe_symlink_target_path(TALLOC_CTX *mem_ctx,
- const char *connectpath,
- const char *dir,
- const char *target,
- size_t unparsed,
- char **_relative)
+static NTSTATUS safe_symlink_target_path(TALLOC_CTX *mem_ctx,
+ const char *connectpath,
+ const char *dir,
+ const char *target,
+ size_t unparsed,
+ char **_relative)
{
char *abs_target = NULL;
char *abs_target_canon = NULL;
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index d8361fb8060..eb0333d46be 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -288,14 +288,14 @@ static NTSTATUS create_conn_struct_as_root(TALLOC_CTX
*ctx,
if (!smbd_vfs_init(conn)) {
NTSTATUS status = map_nt_error_from_unix(errno);
- DEBUG(0,("create_conn_struct: smbd_vfs_init failed.\n"));
+ DBG_ERR("smbd_vfs_init failed.\n");
conn_free(conn);
return status;
}
/* this must be the first filesystem operation that we do */
if (SMB_VFS_CONNECT(conn, servicename, vfs_user) < 0) {
- DEBUG(0,("VFS connect failed!\n"));
+ DBG_ERR("VFS connect failed!\n");
conn_free(conn);
return NT_STATUS_UNSUCCESSFUL;
}
diff --git a/source3/smbd/smb1_reply.c b/source3/smbd/smb1_reply.c
index bba77119c16..83b754f9c77 100644
--- a/source3/smbd/smb1_reply.c
+++ b/source3/smbd/smb1_reply.c
@@ -1907,7 +1907,7 @@ void reply_open_and_X(struct smb_request *req)
#endif
int smb_ofun;
uint32_t fattr=0;
- int mtime=0;
+ time_t mtime=0;
int smb_action = 0;
struct files_struct *dirfsp = NULL;
files_struct *fsp;
diff --git a/source3/smbd/smb2_trans2.c b/source3/smbd/smb2_trans2.c
index 0370a8332cd..3483a413335 100644
--- a/source3/smbd/smb2_trans2.c
+++ b/source3/smbd/smb2_trans2.c
@@ -1783,7 +1783,10 @@ NTSTATUS smbd_dirptr_lanman2_entry(TALLOC_CTX *ctx,
uint32_t mode = 0;
char *fname = NULL;
struct smb_filename *smb_fname = NULL;
- struct smbd_dirptr_lanman2_state state;
+ struct smbd_dirptr_lanman2_state state = {
+ .conn = conn,
+ .info_level = info_level,
+ };
bool ok;
uint64_t last_entry_off = 0;
NTSTATUS status;
@@ -1792,9 +1795,6 @@ NTSTATUS smbd_dirptr_lanman2_entry(TALLOC_CTX *ctx,
mangled_names = lp_mangled_names(conn->params);
- ZERO_STRUCT(state);
- state.conn = conn;
- state.info_level = info_level;
if (mangled_names != MANGLED_NAMES_NO) {
state.check_mangled_names = true;
}
diff --git a/source3/utils/net_vfs.c b/source3/utils/net_vfs.c
index 1cc775f3c4d..8120811676e 100644
--- a/source3/utils/net_vfs.c
+++ b/source3/utils/net_vfs.c
@@ -278,6 +278,7 @@ static int net_vfs_get_ntacl(struct net_context *net,
if (!NT_STATUS_IS_OK(status)) {
DBG_ERR("SMB_VFS_CREATE_FILE [%s] failed: %s\n",
smb_fname_str_dbg(smb_fname), nt_errstr(status));
+ TALLOC_FREE(smb_fname);
goto done;
}
diff --git a/source4/librpc/ndr/py_xattr.c b/source4/librpc/ndr/py_xattr.c
index 523c1ab4a19..df134e01a9a 100644
--- a/source4/librpc/ndr/py_xattr.c
+++ b/source4/librpc/ndr/py_xattr.c
@@ -44,7 +44,7 @@ static void ntacl_print_debug_helper(struct ndr_print *ndr,
const char *format,
{
va_list ap;
char *s = NULL;
- int i, ret;
+ int ret;
va_start(ap, format);
ret = vasprintf(&s, format, ap);
@@ -54,11 +54,8 @@ static void ntacl_print_debug_helper(struct ndr_print *ndr,
const char *format,
return;
}
- for (i=0;i<ndr->depth;i++) {
- printf(" ");
- }
+ printf("%*.s\n", 4 * ndr->depth, s);
- printf("%s\n", s);
free(s);
}
--
Samba Shared Repository