[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Wed Mar 23 17:54:01 UTC 2022
The branch, master has been updated
via 80d72b532f6 smbd: Make an if-statement in ReadDirName() a bit more readable
via 202a8a53b48 smbclient: strequal() -> ISDOT/ISDOTDOT
via a0c897ba201 smbd: Use ISDOT/ISDOTDOT in ReadDirName()
via 3505285c8f2 smbd: Fix a misleading comment
via bd692c1f904 smbd: Avoid an "else"
via 393176e9675 lib: Use talloc_zero, save a ZERO_STRUCT
via 3353174d1a0 lib: Add a pair of {}
via 313d207d724 lib: Slightly simplify add_interface()
via 280e9191cbf smbd: Make non_widelink_open() robust for non-cwd dirfsp
from dbde99a0305 replace: add explicit function pointer casting from dlsym() to avoid warnings
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 80d72b532f6c17acc045fcdada71dbbc0adb977a
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 12 12:47:03 2022 +0100
smbd: Make an if-statement in ReadDirName() a bit more readable
Align to make the () structure more obvious
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Wed Mar 23 17:53:09 UTC 2022 on sn-devel-184
commit 202a8a53b48e599e6e9a2a65f52b0a9667ef9df7
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 12 12:40:29 2022 +0100
smbclient: strequal() -> ISDOT/ISDOTDOT
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit a0c897ba2011a36f7dfbf55ead327092373c5020
Author: Volker Lendecke <vl at samba.org>
Date: Sat Mar 12 12:47:54 2022 +0100
smbd: Use ISDOT/ISDOTDOT in ReadDirName()
With those macros, we check n[0] twice now, but I think the compiler
should either optimize that out or if it can't this will be in the CPU
cache, so the second check should be practially free. I can't imagine
this makes any difference but the better readability.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 3505285c8f2af3d69a3bf0b2b97c1af38cc0688c
Author: Volker Lendecke <vl at samba.org>
Date: Sun Mar 13 15:22:50 2022 +0100
smbd: Fix a misleading comment
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit bd692c1f9045880b19fbc6de9ed024d06c1c8113
Author: Volker Lendecke <vl at samba.org>
Date: Sun Mar 13 15:58:03 2022 +0100
smbd: Avoid an "else"
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 393176e967579655b55a429c35ab6b399ff8cc07
Author: Volker Lendecke <vl at samba.org>
Date: Mon Mar 21 09:13:09 2022 +0100
lib: Use talloc_zero, save a ZERO_STRUCT
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 3353174d1a07c01b57a787ee458965352c3819d5
Author: Volker Lendecke <vl at samba.org>
Date: Mon Mar 21 09:12:44 2022 +0100
lib: Add a pair of {}
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 313d207d72477370f2d06e8d5bb8662e7f4d2176
Author: Volker Lendecke <vl at samba.org>
Date: Mon Mar 21 09:12:02 2022 +0100
lib: Slightly simplify add_interface()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 280e9191cbf8a766e69ab138450f2beccbedd879
Author: Volker Lendecke <vl at samba.org>
Date: Wed Mar 9 12:58:40 2022 +0100
smbd: Make non_widelink_open() robust for non-cwd dirfsp
If you pass in dirfsp!=conn->cwd_fsp and a stream fsp, we don't chdir
to the parent pathname, and thus we also don't overwrite
fsp->base_fsp.
fsp->base_fsp!=NULL is thus the wrong condition to restore the
original base fsp name: If we open a stream with a non-cwd_fsp dirfsp,
we would overwrite fsp->base_fsp->fsp_name with NULL.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/client/client.c | 12 ++++++------
source3/smbd/dir.c | 19 ++++++++++---------
source3/smbd/open.c | 3 ++-
source4/lib/socket/interface.c | 11 +++++++----
4 files changed, 25 insertions(+), 20 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/client/client.c b/source3/client/client.c
index 690f9deaec9..15e32d379f0 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -565,9 +565,9 @@ static NTSTATUS display_finfo(struct cli_state *cli_state, struct file_info *fin
uint16_t fnum;
struct cli_credentials *creds = samba_cmdline_get_creds();
- /* skip if this is . or .. */
- if ( strequal(finfo->name,"..") || strequal(finfo->name,".") )
+ if (ISDOT(finfo->name) || ISDOTDOT(finfo->name)) {
return NT_STATUS_OK;
+ }
/* create absolute filename for cli_ntcreate() FIXME */
afname = talloc_asprintf(ctx,
"%s%s%s",
@@ -1214,8 +1214,9 @@ static NTSTATUS do_mget(struct cli_state *cli_state, struct file_info *finfo,
return NT_STATUS_OK;
}
- if (strequal(finfo->name,".") || strequal(finfo->name,".."))
+ if (ISDOT(finfo->name) || ISDOTDOT(finfo->name)) {
return NT_STATUS_OK;
+ }
if ((finfo->attr & FILE_ATTRIBUTE_DIRECTORY) && !recurse) {
return NT_STATUS_OK;
@@ -2077,10 +2078,9 @@ static int file_find(TALLOC_CTX *ctx,
return -1;
while ((dname = readdirname(dir))) {
- if (!strcmp("..", dname))
- continue;
- if (!strcmp(".", dname))
+ if (ISDOT(dname) || ISDOTDOT(dname)) {
continue;
+ }
path = talloc_asprintf(ctx, "%s/%s", directory, dname);
if (path == NULL) {
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 059de584d17..65997dd3099 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -507,7 +507,8 @@ static char *dptr_ReadDirName(TALLOC_CTX *ctx,
if (NT_STATUS_IS_OK(status)) {
name = found_name;
goto clean;
- } else if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
+ }
+ if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
/* The case-insensitive lookup was authoritative. */
goto clean;
}
@@ -1506,8 +1507,9 @@ NTSTATUS OpenDir(TALLOC_CTX *mem_ctx,
}
/*
- * This overwrites the destructor set by smb_Dir_OpenDir_destructor(),
- * but smb_Dir_OpenDir_destructor() calls the OpenDir_fsp() destructor.
+ * This overwrites the destructor set by OpenDir_fsp() but
+ * smb_Dir_OpenDir_destructor() calls the OpenDir_fsp()
+ * destructor.
*/
talloc_set_destructor(dir_hnd, smb_Dir_OpenDir_destructor);
@@ -1601,7 +1603,8 @@ const char *ReadDirName(struct smb_Dir *dir_hnd, long *poffset,
/* Cheat to allow . and .. to be the first entries returned. */
if (((*poffset == START_OF_DIRECTORY_OFFSET) ||
- (*poffset == DOT_DOT_DIRECTORY_OFFSET)) && (dir_hnd->file_number < 2))
+ (*poffset == DOT_DOT_DIRECTORY_OFFSET)) &&
+ (dir_hnd->file_number < 2))
{
if (dir_hnd->file_number == 0) {
n = ".";
@@ -1625,11 +1628,9 @@ const char *ReadDirName(struct smb_Dir *dir_hnd, long *poffset,
while ((n = vfs_readdirname(conn, dir_hnd->fsp, dir_hnd->dir, sbuf, &talloced))) {
/* Ignore . and .. - we've already returned them. */
- if (*n == '.') {
- if ((n[1] == '\0') || (n[1] == '.' && n[2] == '\0')) {
- TALLOC_FREE(talloced);
- continue;
- }
+ if (ISDOT(n) || ISDOTDOT(n)) {
+ TALLOC_FREE(talloced);
+ continue;
}
*poffset = dir_hnd->offset = SMB_VFS_TELLDIR(conn, dir_hnd->dir);
*ptalloced = talloced;
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index d01b5ae65f4..3995a0beb35 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -891,7 +891,8 @@ static NTSTATUS non_widelink_open(const struct files_struct *dirfsp,
out:
fsp->fsp_name = orig_fsp_name;
- if (fsp->base_fsp != NULL) {
+
+ if (orig_base_fsp_name != NULL) {
/* Save off the temporary name. */
struct smb_filename *base_smb_fname_rel =
fsp->base_fsp->fsp_name;
diff --git a/source4/lib/socket/interface.c b/source4/lib/socket/interface.c
index 181893a9e7f..65543c6a294 100644
--- a/source4/lib/socket/interface.c
+++ b/source4/lib/socket/interface.c
@@ -94,11 +94,14 @@ static void add_interface(TALLOC_CTX *mem_ctx, const struct iface_struct *ifs, s
return;
}
- iface = talloc(*interfaces == NULL ? mem_ctx : *interfaces, struct interface);
- if (iface == NULL)
+ if (*interfaces != NULL) {
+ mem_ctx = *interfaces;
+ }
+
+ iface = talloc_zero(mem_ctx, struct interface);
+ if (iface == NULL) {
return;
-
- ZERO_STRUCTPN(iface);
+ }
iface->name = talloc_strdup(iface, ifs->name);
if (!iface->name) {
--
Samba Shared Repository
More information about the samba-cvs
mailing list