[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Thu Aug 27 08:17:02 UTC 2020
The branch, master has been updated
via f8b7ee024ba s3: libsmb: Remove one more ugly sockaddr cast in resolve_name_list() by converting to samba_sockaddr.
via 42d01987d3d s3: libsmb: Inside get_dc_list() move one more sockaddr_storage -> samba_sockaddr.
from fbe58531a20 third_party: Update resolv_wrapper to version 1.1.7
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f8b7ee024ba6ecabe75180047222335b6a970dda
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:41:27 2020 -0700
s3: libsmb: Remove one more ugly sockaddr cast in resolve_name_list() by converting to samba_sockaddr.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Thu Aug 27 08:16:37 UTC 2020 on sn-devel-184
commit 42d01987d3d5e90360e0ad63da08cf0994983f68
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:35:42 2020 -0700
s3: libsmb: Inside get_dc_list() move one more sockaddr_storage -> samba_sockaddr.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/libsmb/namequery.c | 50 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 42 insertions(+), 8 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index af6efc63569..57ef58ec12e 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -3521,8 +3521,17 @@ NTSTATUS resolve_name_list(TALLOC_CTX *ctx,
/* only return valid addresses for TCP connections */
for (i=0, num_entries = 0; i<count; i++) {
- if (!is_zero_addr(&ss_list[i].ss) &&
- !is_broadcast_addr((struct sockaddr *)(void *)&ss_list[i].ss)) {
+ struct samba_sockaddr sa = {0};
+ bool ok;
+
+ ok = sockaddr_storage_to_samba_sockaddr(&sa,
+ &ss_list[i].ss);
+ if (!ok) {
+ status = NT_STATUS_INVALID_ADDRESS;
+ goto done;
+ }
+ if (!is_zero_addr(&sa.u.ss) &&
+ !is_broadcast_addr(&sa.u.sa)) {
num_entries++;
}
}
@@ -3540,8 +3549,17 @@ NTSTATUS resolve_name_list(TALLOC_CTX *ctx,
}
for (i=0, num_entries = 0; i<count; i++) {
- if (!is_zero_addr(&ss_list[i].ss) &&
- !is_broadcast_addr((struct sockaddr *)(void *)&ss_list[i].ss)) {
+ struct samba_sockaddr sa = {0};
+ bool ok;
+
+ ok = sockaddr_storage_to_samba_sockaddr(&sa,
+ &ss_list[i].ss);
+ if (!ok) {
+ status = NT_STATUS_INVALID_ADDRESS;
+ goto done;
+ }
+ if (!is_zero_addr(&sa.u.ss) &&
+ !is_broadcast_addr(&sa.u.sa)) {
(*return_ss_arr)[num_entries++] = ss_list[i].ss;
}
}
@@ -3777,7 +3795,7 @@ static NTSTATUS get_dc_list(const char *domain,
while ((local_count<num_addresses) &&
next_token_talloc(ctx, &p, &name, LIST_SEP)) {
- struct sockaddr_storage name_ss;
+ struct samba_sockaddr name_sa = {0};
/* copy any addresses from the auto lookup */
@@ -3828,11 +3846,27 @@ static NTSTATUS get_dc_list(const char *domain,
/* explicit lookup; resolve_name() will
* handle names & IP addresses */
- if (resolve_name( name, &name_ss, 0x20, true )) {
+ if (resolve_name(name, &name_sa.u.ss, 0x20, true)) {
char addr[INET6_ADDRSTRLEN];
+ bool ok;
+
+ /*
+ * Ensure we set sa_socklen correctly.
+ * Doesn't matter now, but eventually we
+ * will remove ip_service and return samba_sockaddr
+ * arrays directly.
+ */
+ ok = sockaddr_storage_to_samba_sockaddr(
+ &name_sa,
+ &name_sa.u.ss);
+ if (!ok) {
+ status = NT_STATUS_INVALID_ADDRESS;
+ goto out;
+ }
+
print_sockaddr(addr,
sizeof(addr),
- &name_ss);
+ &name_sa.u.ss);
/* Check for and don't copy any known bad DC IP's. */
if( !NT_STATUS_IS_OK(check_negative_conn_cache(domain,
@@ -3843,7 +3877,7 @@ static NTSTATUS get_dc_list(const char *domain,
continue;
}
- return_iplist[local_count].ss = name_ss;
+ return_iplist[local_count].ss = name_sa.u.ss;
return_iplist[local_count].port = port;
local_count++;
*ordered = true;
--
Samba Shared Repository
More information about the samba-cvs
mailing list