The branch, master has been updated via 82dd1ee9e75 nsswitch: support all known DS lookup flags in wbclient's wbcLookupDomainController() via 0f3f5dbbbd1 vfs_default: Use already available SMBPROFILE_*_X macros via e51fb769e23 vfs_ceph_new: Use already available SMBPROFILE_*_X macros via b30ba6867e9 s3/smbd: Use SMBPROFILE_IOBYTES_ASYNC_STATE_X macro via 26dcee98978 s3/include: Define SMBPROFILE_*_ASYNC_STATE_X macros from 846a2375c1e compression/tests: Fix possible out of bound access CID:1517301
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 82dd1ee9e75a12751063de324496fcb97af2e89f Author: Günther Deschner <g...@samba.org> Date: Mon Jul 14 20:18:08 2025 +0200 nsswitch: support all known DS lookup flags in wbclient's wbcLookupDomainController() Guenther Signed-off-by: Guenther Deschner <g...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Günther Deschner <g...@samba.org> Autobuild-Date(master): Tue Aug 12 08:26:55 UTC 2025 on atb-devel-224 commit 0f3f5dbbbd15aa6746d858e29ee9cc693e92230f Author: Anoop C S <anoo...@samba.org> Date: Wed Jul 2 15:06:17 2025 +0530 vfs_default: Use already available SMBPROFILE_*_X macros Signed-off-by: Anoop C S <anoo...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> commit e51fb769e23bd2ff8c92e390e0c79b7a8de82595 Author: Anoop C S <anoo...@samba.org> Date: Wed Jul 2 15:04:27 2025 +0530 vfs_ceph_new: Use already available SMBPROFILE_*_X macros Signed-off-by: Anoop C S <anoo...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> commit b30ba6867e93dfe0dae8a6401a63235f90668e80 Author: Anoop C S <anoo...@samba.org> Date: Wed Jul 2 15:12:20 2025 +0530 s3/smbd: Use SMBPROFILE_IOBYTES_ASYNC_STATE_X macro Signed-off-by: Anoop C S <anoo...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> commit 26dcee98978089d8e5d8948cf9a56d24be37b0f7 Author: Anoop C S <anoo...@samba.org> Date: Wed Jul 2 15:08:58 2025 +0530 s3/include: Define SMBPROFILE_*_ASYNC_STATE_X macros Signed-off-by: Anoop C S <anoo...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> ----------------------------------------------------------------------- Summary of changes: nsswitch/libwbclient/wbclient.h | 4 ++++ source3/include/smbprofile.h | 10 ++++++++++ source3/modules/vfs_ceph_new.c | 15 +++++++-------- source3/modules/vfs_default.c | 15 +++++++-------- source3/smbd/globals.h | 3 +-- source3/winbindd/winbindd_dsgetdcname.c | 8 ++++++++ 6 files changed, 37 insertions(+), 18 deletions(-) Changeset truncated at 500 lines: diff --git a/nsswitch/libwbclient/wbclient.h b/nsswitch/libwbclient/wbclient.h index 31a7e492098..0b1c740b39b 100644 --- a/nsswitch/libwbclient/wbclient.h +++ b/nsswitch/libwbclient/wbclient.h @@ -1548,6 +1548,10 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, #define WBC_LOOKUP_DC_IS_DNS_NAME 0x00020000 #define WBC_LOOKUP_DC_TRY_NEXTCLOSEST_SITE 0x00040000 #define WBC_LOOKUP_DC_DS_6_REQUIRED 0x00080000 +#define WBC_LOOKUP_DC_WEB_REQUIRED 0x00100000 +#define WBC_LOOKUP_DC_DS_8_REQUIRED 0x00200000 +#define WBC_LOOKUP_DC_DS_9_REQUIRED 0x00400000 +#define WBC_LOOKUP_DC_DS_10_REQUIRED 0x00800000 #define WBC_LOOKUP_DC_RETURN_DNS_NAME 0x40000000 #define WBC_LOOKUP_DC_RETURN_FLAT_NAME 0x80000000 diff --git a/source3/include/smbprofile.h b/source3/include/smbprofile.h index b45d709b016..c51e0b22672 100644 --- a/source3/include/smbprofile.h +++ b/source3/include/smbprofile.h @@ -895,6 +895,10 @@ int smbprofile_persvc_collect_tdb(struct tdb_context *tdb, SMBPROFILE_BYTES_ASYNC_END(__profasync_persvc_##x); \ } while (0) +#define SMBPROFILE_BYTES_ASYNC_STATE_X(_async_name, _async_persvc_name) \ + struct smbprofile_stats_bytes_async _async_name; \ + struct smbprofile_stats_bytes_async _async_persvc_name; + #define SMBPROFILE_BYTES_ASYNC_START_X(_snum, _name, _async, _async_persvc, _bytes) \ _SMBPROFILE_BYTES_ASYNC_START(_name##_stats, profile_p, _async, _bytes); \ do { \ @@ -925,6 +929,10 @@ int smbprofile_persvc_collect_tdb(struct tdb_context *tdb, _SMBPROFILE_BYTES_ASYNC_END(_async_persvc); \ } while (0) +#define SMBPROFILE_IOBYTES_ASYNC_STATE_X(_async_name, _async_persvc_name) \ + struct smbprofile_stats_iobytes_async _async_name; \ + struct smbprofile_stats_iobytes_async _async_persvc_name; + #define SMBPROFILE_IOBYTES_ASYNC_START_X(_snum, _name, _async, _async_persvc, _bytes) \ _SMBPROFILE_IOBYTES_ASYNC_START(_name##_stats, profile_p, _async, _bytes); \ do { \ @@ -968,10 +976,12 @@ int smbprofile_persvc_collect_tdb(struct tdb_context *tdb, #define START_PROFILE_BYTES_X(_snum, x, n) #define END_PROFILE_X(x) #define END_PROFILE_BYTES_X(x) +#define SMBPROFILE_BYTES_ASYNC_STATE_X(_async_name, _async_persvc_name) #define SMBPROFILE_BYTES_ASYNC_START_X(_name, _snum, _async, _async_persvc, _bytes) #define SMBPROFILE_BYTES_ASYNC_SET_IDLE_X(_async, _async_persvc) #define SMBPROFILE_BYTES_ASYNC_SET_BUSY_X(_async, _async_persvc) #define SMBPROFILE_BYTES_ASYNC_END_X(_async, _async_persvc) +#define SMBPROFILE_IOBYTES_ASYNC_STATE_X(_async_name, _async_persvc_name) #define SMBPROFILE_IOBYTES_ASYNC_START_X(_name, _snum, _async, _async_persvc, _bytes) #define SMBPROFILE_IOBYTES_ASYNC_SET_IDLE_X(_async, _async_persvc) #define SMBPROFILE_IOBYTES_ASYNC_SET_BUSY_X(_async, _async_persvc) diff --git a/source3/modules/vfs_ceph_new.c b/source3/modules/vfs_ceph_new.c index 996edc73458..7112719a399 100644 --- a/source3/modules/vfs_ceph_new.c +++ b/source3/modules/vfs_ceph_new.c @@ -2473,8 +2473,7 @@ struct vfs_ceph_aio_state { struct timespec finish_time; ssize_t result; struct vfs_aio_state vfs_aio_state; - SMBPROFILE_BYTES_ASYNC_STATE(profile_bytes); - SMBPROFILE_BYTES_ASYNC_STATE(profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_STATE_X(profile_bytes, profile_bytes_x); }; static void vfs_ceph_aio_start(struct vfs_ceph_aio_state *state) @@ -2745,8 +2744,8 @@ static ssize_t vfs_ceph_pread_recv(struct tevent_req *req, state->off, state->len); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_END_X(state->profile_bytes, + state->profile_bytes_x); if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) { goto out; @@ -2861,8 +2860,8 @@ static ssize_t vfs_ceph_pwrite_recv(struct tevent_req *req, state->off, state->len); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_END_X(state->profile_bytes, + state->profile_bytes_x); if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) { goto out; @@ -3064,8 +3063,8 @@ static int vfs_ceph_fsync_recv(struct tevent_req *req, state->len, state->result); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_END_X(state->profile_bytes, + state->profile_bytes_x); if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) { goto out; diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 83c9cc06de8..02057c7394c 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -912,8 +912,8 @@ static void vfs_pread_done(struct tevent_req *subreq) ret = pthreadpool_tevent_job_recv(subreq); TALLOC_FREE(subreq); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_END_X(state->profile_bytes, + state->profile_bytes_x); talloc_set_destructor(state, NULL); if (ret != 0) { if (ret != EAGAIN) { @@ -955,8 +955,7 @@ struct vfswrap_pwrite_state { bool posix_append; struct vfs_aio_state vfs_aio_state; - SMBPROFILE_BYTES_ASYNC_STATE(profile_bytes); - SMBPROFILE_BYTES_ASYNC_STATE(profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_STATE_X(profile_bytes, profile_bytes_x); }; static void vfs_pwrite_do(void *private_data); @@ -1188,8 +1187,8 @@ static void vfs_fsync_done(struct tevent_req *subreq) ret = pthreadpool_tevent_job_recv(subreq); TALLOC_FREE(subreq); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_END_X(state->profile_bytes, + state->profile_bytes_x); talloc_set_destructor(state, NULL); if (ret != 0) { if (ret != EAGAIN) { @@ -3814,8 +3813,8 @@ static void vfswrap_getxattrat_done(struct tevent_req *subreq) ret = pthreadpool_tevent_job_recv(subreq); TALLOC_FREE(subreq); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes); - SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x); + SMBPROFILE_BYTES_ASYNC_END_X(state->profile_bytes, + state->profile_bytes_x); talloc_set_destructor(state, NULL); if (ret != 0) { if (ret != EAGAIN) { diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index e518c710cda..aafce615d61 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -655,8 +655,7 @@ struct smbd_smb2_request { struct timeval request_time; - SMBPROFILE_IOBYTES_ASYNC_STATE(profile); - SMBPROFILE_IOBYTES_ASYNC_STATE(profile_x); + SMBPROFILE_IOBYTES_ASYNC_STATE_X(profile, profile_x); /* fake smb1 request. */ struct smb_request *smb1req; diff --git a/source3/winbindd/winbindd_dsgetdcname.c b/source3/winbindd/winbindd_dsgetdcname.c index 9dadeab863b..9971d8b4cdb 100644 --- a/source3/winbindd/winbindd_dsgetdcname.c +++ b/source3/winbindd/winbindd_dsgetdcname.c @@ -181,6 +181,14 @@ static uint32_t get_dsgetdc_flags(uint32_t wbc_flags) DS_TRY_NEXTCLOSEST_SITE }, { WBC_LOOKUP_DC_DS_6_REQUIRED, DS_DIRECTORY_SERVICE_6_REQUIRED }, + { WBC_LOOKUP_DC_WEB_REQUIRED, + DS_WEB_SERVICE_REQUIRED }, + { WBC_LOOKUP_DC_DS_8_REQUIRED, + DS_DIRECTORY_SERVICE_8_REQUIRED }, + { WBC_LOOKUP_DC_DS_9_REQUIRED, + DS_DIRECTORY_SERVICE_9_REQUIRED }, + { WBC_LOOKUP_DC_DS_10_REQUIRED, + DS_DIRECTORY_SERVICE_10_REQUIRED }, { WBC_LOOKUP_DC_RETURN_DNS_NAME, DS_RETURN_DNS_NAME }, { WBC_LOOKUP_DC_RETURN_FLAT_NAME, -- Samba Shared Repository