[SCM] Samba Shared Repository - branch master updated

Noel Power npower at samba.org
Tue Sep 15 11:34:03 UTC 2020


The branch, master has been updated
       via  67498ffd787 s3: libsmb: Cleanup - in internal_resolve_name() only write the out parameters on success.
       via  c1d39295fb0 s3: Remove struct ip_service.
       via  526fdaa747e s3: libsmb: namequery. Rename remove_duplicate_addrs2_sa() to remove_duplicate_addrs2()
       via  d627ef14885 s3: libsmb: namequery.c: Remove unused remove_duplicate_addrs2().
       via  5b6245d14b0 s3: libsmb: namequery.c: Remove now unused internal_resolve_name() wrapper.
       via  a679c6c5a1f s3: libsmb: namequery.c: Remove now unused convert_ss2service().
       via  7d37b8ba1b0 s3: libsmb: namequery.c: Remove now unused ip_service_to_samba_sockaddr().
       via  757934e8644 3: libsmb: namequery: Convert _internal_resolve_name() -> internal_resolve_name() returning talloced samba_sockaddr arrays.
       via  d3f6eccc98b s3: libsmb: namequery: Add utility function sockaddr_array_to_samba_sockaddr_array().
       via  ef62fa93be5 s3: libsmb: Rename prioritize_ipv4_list_sa() -> prioritize_ipv4_list() now it's the only use.
       via  5a2b5c74c9b s3: libsmb: Remove unused prioritize_ipv4_list().
       via  e0d060c632c s3: libsmb: Tidy up the talloc heirarchy allocation in get_dc_list().
       via  f03a6ef66b8 s3: libsmb: Convert get_dc_list() to call internal_resolve_name() not _internal_resolve_name().
       via  5b8f5971e0a s3: libsmb: Remove now unused internal functions ip_service_compare() and sort_service_list().
       via  e6c581f0e12 s3: libsmb: Convert get_pdc_ip() to call internal_resolve_name() not _internal_resolve_name().
       via  be85a463f45 s3: libsmb: Convert find_master_ip() to call internal_resolve_name() not _internal_resolve_name().
       via  3b1542a1e9f s3: libsmb: Convert resolve_name_list() to call internal_resolve_name() not _internal_resolve_name().
       via  178bd3847b3 s3: libsmb: Convert resolve_name() to call internal_resolve_name() not _internal_resolve_name().
       via  185f3027f0f s3: libsmb: Rename internal_resolve_name_sa() -> internal_resolve_name()
       via  489102b044f s3: libsmb: Remove the internal_resolve_name() external interface.
       via  a8ec446d9da s3: libsmb: Fix discover_dc_netbios() to call internal_resolve_name_sa().
       via  fb8acf1717b s3: libsmb: Add internal_resolve_name_sa(). A wrapper for internal_resolve_name().
       via  c5b1d4ffc59 s3: libsmb: Add prioritize_ipv4_list_sa().
       via  5bb632006c3 3: torture: Use remove_duplicate_addrs2_sa() instead of remove_duplicate_addrs2() in LOCAL-remove_duplicate_addrs2 test.
       via  1181e5e1fe5 s3: libsmb: Add remove_duplicate_addrs2_sa() - uses samba_sockaddr.
       via  1cb9611b7b9 s3: libsmb: Convert internal function get_dc_list() to return a samba_sockaddr array.
       via  b59de9e5eeb s3: libsmb: Rename get_sorted_dc_list_sa() -> get_sorted_dc_list().
       via  8ae5408d1f8 s3: libsmb: Remove get_sorted_dc_list(). No longer used.
       via  ffed032bf09 s3: libsmb: Remove last caller of get_sorted_dc_list() from rpc_dc_name().
       via  cb5b69fb6f1 s3: winbind: Fix get_dcs() to use get_sorted_dc_list_sa().
       via  2a57e7ede3d s3: libads: Rename cldap_ping_list_sa() -> cldap_ping_list().
       via  bef9ebd8c97 s3: libads: Remove cldap_ping_list().
       via  5a448e96ace s3: libads: Make resolve_and_ping_dns() use get_sorted_dc_list_sa().
       via  6be32826d7a s3: libads: Make resolve_and_ping_netbios() use get_sorted_dc_list_sa().
       via  4b6fc2b034e s3: libads: Add an alternate version of cldap_ping_list() that takes an array of samba_sockaddrs.
       via  1fb56f3f4f6 s3: utils: Make net_lookup_dc() use get_sorted_dc_list_sa().
       via  2b7629f3f39 s3: libsmb: Add function get_sorted_dc_list_sa(). Returns samba_sockaddr array.
       via  1eecdd9401f s3: libsmb: Rename get_kdc_list_sa() back to get_kdc_list().
       via  0562154afad s3: libsmb: Remove get_kdc_list(). No more callers.
       via  516d8734c72 s3: libads: Convert get_kdc_ip_string() to use get_kdc_list_sa().
       via  0a347683d12 s3: utils: Make net_lookup_kdc() use get_kdc_list_sa().
       via  47e104c496a s3: libsmb: Add get_kdc_list_sa() returns samba_sockaddr array.
       via  afd83fa5e17 s3: libsmb: Add sort_sa_list() compare function. Not yet used.
       via  78b191c4a0a s3: libsmb: Make sort_addr_list() and sort_service_list() take size_t counts.
       via  76beee81290 s3: libads: Use size_t counts inside cldap_ping_list().
       via  d044d20c6fb s3: libads: Reformat args to cldap_ping_list().
       via  ced8fbc7053 s3: libsmb: Make prioritize_ipv4_list() use size_t counts.
       via  d8ff36520f3 s3: libsmb: Fix the count returns in discover_dc_netbios(), discover_dc_dns(), process_dc_dns() to return size_t * counts.
       via  1a10a430eb6 s3/libsmb: cleanup discover_dc_dns() Fix potential leak
       via  ed1e1e0b462 s3/libsmb: cleanup discover_dc_dns, only set out params on success
       via  62e99efa3d2 lib: addns: Fix ads_dns_lookup_ns(), ads_dns_query_dcs(), ads_dns_query_gcs(), ads_dns_query_kdcs(), ads_dns_query_pdc() to return size_t *.
       via  2ebf3191f2b lib: addns: Fix ads_dns_lookup_srv() and functions to return size_t * num servers.
       via  a8e0d46ead7 s3: libsmb: internal_resolve_name() - get rid of the icount variables.
       via  1fc49be483c s3: libsmb: Make resolve_ads() return a size_t * address count.
       via  2a1c57f6fc9 s3: libsmb: Fix resolve_hosts() to return size_t * count of addresses.
       via  f5dda19dd4a s3: libsmb: cleanup resolve_hosts() - don't change return values on fail.
       via  e034072c969 libcli: nbt: Fix resolve_lmhosts_file_as_sockaddr() to return size_t * count of addresses.
       via  da9c7b19380 libcli: nbt: cleanup resolve_lmhosts_file_as_sockaddr() - don't change return values on fail.
       via  af6aaf62437 s3: libsmb: Convert the WINS and broadcast name functions to return size_t * num addresses.
       via  dbab4626ef9 s3/libsmb: Cleanup parse_node_status() only set out params on success
       via  923648b0c42 s3: libsmb: Convert node_status_query() and associated functions and callers to expect a size_t * return.
      from  8f868b0ea0b winbind: Fix a memleak

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 67498ffd78799a658991092186a3886204302947
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:58:20 2020 -0700

    s3: libsmb: Cleanup - in internal_resolve_name() only write the out parameters on success.
    
    All callers already correctly initialize them.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>
    
    Autobuild-User(master): Noel Power <npower at samba.org>
    Autobuild-Date(master): Tue Sep 15 11:33:35 UTC 2020 on sn-devel-184

commit c1d39295fb0e501f2ace47921b03cb0086c421a7
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:48:19 2020 -0700

    s3: Remove struct ip_service.
    
                               ---------------
                              /               \
                             /      REST       \
                            /        IN         \
                           /        PEACE        \
                          /                       \
                          |                       |
                          |   struct ip_service   |
                          |                       |
                          |                       |
                          |       9 August        |
                          |   In the year of the  |
                          |        pandemic       |
                          |          2020         |
                         *|     *  *  *           | *
                _________)/\\_//(\/(/\)/\//\/\////|_)_______
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 526fdaa747e2c03b644d1581e27af7a44dcd1b1d
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:46:49 2020 -0700

    s3: libsmb: namequery. Rename remove_duplicate_addrs2_sa() to remove_duplicate_addrs2()
    
    It's now the only function.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit d627ef14885b7ab16b1d40b3954c1aa92e313330
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:45:21 2020 -0700

    s3: libsmb: namequery.c: Remove unused remove_duplicate_addrs2().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 5b6245d14b090162321d21e21a5f6da9c2f0cb77
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:43:45 2020 -0700

    s3: libsmb: namequery.c: Remove now unused internal_resolve_name() wrapper.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit a679c6c5a1f962d8132e5b773607d0722f9a9303
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:42:46 2020 -0700

    s3: libsmb: namequery.c: Remove now unused convert_ss2service().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 7d37b8ba1b000e292d3866dafb47881dc438db96
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:42:09 2020 -0700

    s3: libsmb: namequery.c: Remove now unused ip_service_to_samba_sockaddr().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 757934e8644436f26c1ce52dc22b3c212bae49ea
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:41:02 2020 -0700

    3: libsmb: namequery: Convert _internal_resolve_name() -> internal_resolve_name() returning talloced samba_sockaddr arrays.
    
    Wrapper function internal_resolve_name() is now commented out,
    along with the now unused ip_service_to_samba_sockaddr() and
    convert_ss2service() functions.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit d3f6eccc98b73cb65389a3621e031941b2f047dc
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:24:13 2020 -0700

    s3: libsmb: namequery: Add utility function sockaddr_array_to_samba_sockaddr_array().
    
    Not yet used. Will help convert _internal_resolve_name() to internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit ef62fa93be5e0d768542958ea7bdceb578de0f1e
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:17:31 2020 -0700

    s3: libsmb: Rename prioritize_ipv4_list_sa() -> prioritize_ipv4_list() now it's the only use.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 5a2b5c74c9b85fa303236f9151b6d024c47ca5f9
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:16:54 2020 -0700

    s3: libsmb: Remove unused prioritize_ipv4_list().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit e0d060c632c2a61cfe5c61b2ad9ee5b09be02855
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:14:30 2020 -0700

    s3: libsmb: Tidy up the talloc heirarchy allocation in get_dc_list().
    
    Always allocate the return_salist off the frame pointer.
    Only talloc_move() to return ctx on successful return.
    
    Cleans up a nasty else in the exit path that caused
    problems in the past - we can now always TALLOC_FREE(return_salist)
    without remembering if we need to return it.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit f03a6ef66b8ba5e261645092219a53951622d658
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 10:11:34 2020 -0700

    s3: libsmb: Convert get_dc_list() to call internal_resolve_name() not _internal_resolve_name().
    
    prioritize_ipv4_list() is no longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 5b8f5971e0ad360f2e1a9642fa130a2d261c63a1
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:53:50 2020 -0700

    s3: libsmb: Remove now unused internal functions ip_service_compare() and sort_service_list().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit e6c581f0e1294b1530a76ab7d71bdc177a857c79
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:53:07 2020 -0700

    s3: libsmb: Convert get_pdc_ip() to call internal_resolve_name() not _internal_resolve_name().
    
    NB. sort_service_list() and ip_service_compare() are now no
    longer used so comment them out for removal.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit be85a463f45fd62d9f4e904f41388780c1f27f7a
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:50:32 2020 -0700

    s3: libsmb: Convert find_master_ip() to call internal_resolve_name() not _internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 3b1542a1e9f41865ecbb15519a44f00b76721a89
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:48:25 2020 -0700

    s3: libsmb: Convert resolve_name_list() to call internal_resolve_name() not _internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 178bd3847b3a7ba1bfaa6c9b5c4c4d8cf4e49b82
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:45:10 2020 -0700

    s3: libsmb: Convert resolve_name() to call internal_resolve_name() not _internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 185f3027f0f0a9dd88d6ef33c20ff8b583c37c6d
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:40:17 2020 -0700

    s3: libsmb: Rename internal_resolve_name_sa() -> internal_resolve_name()
    
    That's now the only external interface to it.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 489102b044f1297dfa1555c48cf6e21609b3e513
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:38:10 2020 -0700

    s3: libsmb: Remove the internal_resolve_name() external interface.
    
    Change the internal version from internal_resolve_name() -> _internal_resolve_name().
    Only external caller calls internal_resolve_name_sa().
    
    After this we can rename internal_resolve_name_sa() back to internal_resolve_name()
    as all internal use in namequery.c is via _internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit a8ec446d9da87f57a6cd69c66629a9afaa022b44
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:35:35 2020 -0700

    s3: libsmb: Fix discover_dc_netbios() to call internal_resolve_name_sa().
    
    All callers of internal_resolve_name() are now internal to namequery.c
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit fb8acf1717ba60e8285d310a8d4602d2cc08531c
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:32:23 2020 -0700

    s3: libsmb: Add internal_resolve_name_sa(). A wrapper for internal_resolve_name().
    
    Not yet used. Now to fix the callers, and convert internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <jra at samba.org>

commit c5b1d4ffc59ab211ef18911b91bf09e1bae1c3fc
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:26:54 2020 -0700

    s3: libsmb: Add prioritize_ipv4_list_sa().
    
    Re-arranges a samba_sockaddr array in IPv4 preference.
    
    Not yet used so compiles but ifdef'ed out. Needed for conversion
    of internal_resolve_name().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 5bb632006c3f355443bbd3a5eb4f78ee4fddcceb
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:25:07 2020 -0700

    3: torture: Use remove_duplicate_addrs2_sa() instead of remove_duplicate_addrs2() in LOCAL-remove_duplicate_addrs2 test.
    
    Spoiler, still passes :-).
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 1181e5e1fe55bd218c986a9fbb0a543a0a0369d3
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:18:36 2020 -0700

    s3: libsmb: Add remove_duplicate_addrs2_sa() - uses samba_sockaddr.
    
    Not yet used, will be used when we migrate internal_resolve_name()
    to samba_sockaddr.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 1cb9611b7b9d7a00efd917c84f1f1d804248cfad
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 9 09:11:08 2020 -0700

    s3: libsmb: Convert internal function get_dc_list() to return a samba_sockaddr array.
    
    Callers now don't need to convert. Getting closer to making internal_resolve_name()
    return samba_sockaddr array.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>
    `

commit b59de9e5eeb3f2f1c33e65604f8ea3fd00cdcdae
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 18:07:28 2020 -0700

    s3: libsmb: Rename get_sorted_dc_list_sa() -> get_sorted_dc_list().
    
    Everyone now uses samba_sockaddr arrays.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.com>

commit 8ae5408d1f86770de5c6627c4591605934f723dd
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 18:03:23 2020 -0700

    s3: libsmb: Remove get_sorted_dc_list(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit ffed032bf09a27c039e8a6a4db024d3ba5ef3d85
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 18:02:18 2020 -0700

    s3: libsmb: Remove last caller of get_sorted_dc_list() from rpc_dc_name().
    
    Now only get_sorted_dc_list_sa() left.
    Now we can remove get_sorted_dc_list() and rename
    get_sorted_dc_list_sa() back to get_sorted_dc_list().
    
    One more external user of struct ip_service gone.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit cb5b69fb6f121b62482bc8d94c165eaee4710ede
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 17:58:06 2020 -0700

    s3: winbind: Fix get_dcs() to use get_sorted_dc_list_sa().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 2a57e7ede3d1f2bbff26b991c9265fde643710df
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:38:09 2020 -0700

    s3: libads: Rename cldap_ping_list_sa() -> cldap_ping_list().
    
    The old cldap_ping_list() is now gone.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit bef9ebd8c9768816b14ecf70062e6cf2104c79b9
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:37:29 2020 -0700

    s3: libads: Remove cldap_ping_list().
    
    No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 5a448e96ace9a6f42f09d1e9915580f3557e21cd
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:36:40 2020 -0700

    s3: libads: Make resolve_and_ping_dns() use get_sorted_dc_list_sa().
    
    We no longer use cldap_ping_list(), comment it out
    for removal.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 6be32826d7a09c0c0f337eae36d3e0a8448c202a
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:35:01 2020 -0700

    s3: libads: Make resolve_and_ping_netbios() use get_sorted_dc_list_sa().
    
    Now we use cldap_ping_list_sa() so uncomment it.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 4b6fc2b034e5fac4914ac1ee6f778dc0222d6e0c
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:33:25 2020 -0700

    s3: libads: Add an alternate version of cldap_ping_list() that takes an array of samba_sockaddrs.
    
    Preparing for get_sorted_dc_list() returning such an array.
    ifdef'ed out as not yet used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 1fb56f3f4f637a179bfe90b8fefeb159b54d74c2
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:31:18 2020 -0700

    s3: utils: Make net_lookup_dc() use get_sorted_dc_list_sa().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 2b7629f3f39c5bbf217d40d89c0c413303e66289
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:29:35 2020 -0700

    s3: libsmb: Add function get_sorted_dc_list_sa(). Returns samba_sockaddr array.
    
    Now to fix callers.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 1eecdd9401fc2adcc5b09fee8553db34344c7959
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:24:25 2020 -0700

    s3: libsmb: Rename get_kdc_list_sa() back to get_kdc_list().
    
    The samba_sockaddr interface is now the only one.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 0562154afadf9dcb9327f4019d58a166f85e7adf
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:22:21 2020 -0700

    s3: libsmb: Remove get_kdc_list(). No more callers.
    
    Next we can rename get_kdc_list_sa() -> get_kdc_list().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 516d8734c725e69b4341b2f704aabfda885fbd3c
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:21:18 2020 -0700

    s3: libads: Convert get_kdc_ip_string() to use get_kdc_list_sa().
    
    No more callers of get_kdc_list().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 0a347683d12058f0fb158dbe4569506800edad6e
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:11:47 2020 -0700

    s3: utils: Make net_lookup_kdc() use get_kdc_list_sa().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 47e104c496abe54576ddc6bbab864dcb802e7f0b
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:09:53 2020 -0700

    s3: libsmb: Add get_kdc_list_sa() returns samba_sockaddr array.
    
    Not yet used, but uses the previous utility functions.
    Now to convert the get_kdc_list() callers and remove
    one more external use of ip_service.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit afd83fa5e17d0035f8bae1f5a553555b49ab7aaf
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:03:20 2020 -0700

    s3: libsmb: Add sort_sa_list() compare function. Not yet used.
    
    Ready for when we start returning ordered samba_sockaddr arrays.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 78b191c4a0a1240cac0c943a36125085da5549c0
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:01:37 2020 -0700

    s3: libsmb: Make sort_addr_list() and sort_service_list() take size_t counts.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit 76beee812904fa2e2e1c91f5fc8bcd174873d7bc
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 16:00:27 2020 -0700

    s3: libads: Use size_t counts inside cldap_ping_list().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit d044d20c6fbc7b8b40095c3400e49ba03d6bef17
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:59:46 2020 -0700

    s3: libads: Reformat args to cldap_ping_list().
    
    Pure reformatting.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit ced8fbc705380782c4317b8ab4eaee3ea2201cc8
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:58:57 2020 -0700

    s3: libsmb: Make prioritize_ipv4_list() use size_t counts.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

commit d8ff36520f3e3914a6f5c7cc8d569e863023bcfc
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:58:07 2020 -0700

    s3: libsmb: Fix the count returns in discover_dc_netbios(), discover_dc_dns(), process_dc_dns() to return size_t * counts.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit 1a10a430eb6aeb82e692b7017bb1daa82fd123a4
Author: Noel Power <noel.power at suse.com>
Date:   Thu Sep 10 16:37:08 2020 +0100

    s3/libsmb: cleanup discover_dc_dns() Fix potential leak
    
    Signed-off-by: Noel Power <noel.power at suse.com>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit ed1e1e0b462917efbf46cda4fe644a5b0975515d
Author: Noel Power <noel.power at suse.com>
Date:   Thu Sep 10 16:23:27 2020 +0100

    s3/libsmb: cleanup discover_dc_dns, only set out params on success
    
    Signed-off-by: Noel Power <npower at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 62e99efa3d2dc738060140802e0a52569c8aa07e
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 10 16:19:37 2020 +0100

    lib: addns: Fix ads_dns_lookup_ns(), ads_dns_query_dcs(), ads_dns_query_gcs(), ads_dns_query_kdcs(), ads_dns_query_pdc() to return size_t *.
    
    Easier to do all callers at once.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit 2ebf3191f2b87e5402df7faaf590116cfdbb46de
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:45:32 2020 -0700

    lib: addns: Fix ads_dns_lookup_srv() and functions to return size_t * num servers.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit a8e0d46ead768b669e373b407a5b5339dee3ef0f
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:28:14 2020 -0700

    s3: libsmb: internal_resolve_name() - get rid of the icount variables.
    
    Plus the paranoia check. Everything now uses size_t * returns.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit 1fc49be483c2bc31affe70151edfec2ef1193205
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:24:26 2020 -0700

    s3: libsmb: Make resolve_ads() return a size_t * address count.
    
    All resolve_XXXX() functions inside internal_resolve_name()
    now use size_t and we can clean this up.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Signed-off-by: Noel Power<npower at samba.org>

commit 2a1c57f6fc95cabea788fa39d9b6dd0e8a762441
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 15:18:33 2020 -0700

    s3: libsmb: Fix resolve_hosts() to return size_t * count of addresses.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit f5dda19dd4a4dbff95669b48f4e31e1cdd43cf12
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 14:04:41 2020 -0700

    s3: libsmb: cleanup resolve_hosts() - don't change return values on fail.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit e034072c96962754a222b5d4d436db4c4256a7f3
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 13:58:49 2020 -0700

    libcli: nbt: Fix resolve_lmhosts_file_as_sockaddr() to return size_t * count of addresses.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit da9c7b193804b6f5259ca13482660f04b7c5dc1b
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 13:54:55 2020 -0700

    libcli: nbt: cleanup resolve_lmhosts_file_as_sockaddr() - don't change return values on fail.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit af6aaf624377b5cc53a827e76a1773a7694e3876
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 13:37:59 2020 -0700

    s3: libsmb: Convert the WINS and broadcast name functions to return size_t * num addresses.
    
    Have to do both at once as they are intimately related.
    The uglyness inside internal_resolve_name() will go away
    once all the resove_XXX() functions return size_t values.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <npower at samba.org>

commit dbab4626ef9198326e27bbadb45bc125edaf7b93
Author: Noel Power <noel.power at suse.com>
Date:   Thu Sep 10 10:27:26 2020 +0100

    s3/libsmb: Cleanup parse_node_status() only set out params on success
    
    Signed-off-by: Noel Power <noel.power at suse.com>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 923648b0c42388b00eb8b46dcf4f0d7d4f18684d
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Sep 8 13:07:07 2020 -0700

    s3: libsmb: Convert node_status_query() and associated functions and callers to expect a size_t * return.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Noel Power <noel.power at suse.com>

-----------------------------------------------------------------------

Summary of changes:
 lib/addns/dnsquery.c                    |  25 +-
 lib/addns/dnsquery.h                    |  14 +-
 libcli/nbt/libnbt.h                     |   2 +-
 libcli/nbt/lmhosts.c                    |  28 +-
 source3/include/proto.h                 |   2 +-
 source3/include/smb.h                   |   6 -
 source3/lib/wins_srv.c                  |   8 +-
 source3/libads/kerberos.c               |  38 +-
 source3/libads/ldap.c                   |  32 +-
 source3/libsmb/dsgetdcname.c            |  65 +--
 source3/libsmb/libsmb_dir.c             |   8 +-
 source3/libsmb/namequery.c              | 694 ++++++++++++--------------------
 source3/libsmb/namequery.h              |  24 +-
 source3/libsmb/namequery_dc.c           |  14 +-
 source3/torture/torture.c               |   6 +-
 source3/utils/net_ads.c                 |   2 +-
 source3/utils/net_lookup.c              |  16 +-
 source3/utils/nmblookup.c               |   5 +-
 source3/winbindd/winbindd_cm.c          |  52 +--
 source3/winbindd/winbindd_wins_byip.c   |   3 +-
 source3/winbindd/winbindd_wins_byname.c |   4 +-
 source4/libcli/resolve/dns_ex.c         |  15 +-
 source4/libcli/resolve/lmhosts.c        |   2 +-
 23 files changed, 439 insertions(+), 626 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/addns/dnsquery.c b/lib/addns/dnsquery.c
index 03cadfaef0a..c73ee7b50f1 100644
--- a/lib/addns/dnsquery.c
+++ b/lib/addns/dnsquery.c
@@ -105,6 +105,7 @@ static void ads_dns_lookup_srv_done(struct tevent_req *subreq)
 
 	for (i=0; i<reply->ancount; i++) {
 		if (reply->answers[i].rr_type == DNS_QTYPE_SRV) {
+			/* uint16_t can't wrap here. */
 			state->num_srvs += 1;
 		}
 	}
@@ -153,7 +154,7 @@ static void ads_dns_lookup_srv_done(struct tevent_req *subreq)
 			if (strcmp(srv->hostname, ar->name) != 0) {
 				continue;
 			}
-
+			/* uint16_t can't wrap here. */
 			tmp = talloc_realloc(
 				state->srvs,
 				srv->ss_s,
@@ -200,7 +201,7 @@ NTSTATUS ads_dns_lookup_srv_recv(struct tevent_req *req,
 NTSTATUS ads_dns_lookup_srv(TALLOC_CTX *ctx,
 				const char *name,
 				struct dns_rr_srv **dclist,
-				int *numdcs)
+				size_t *numdcs)
 {
 	struct tevent_context *ev;
 	struct tevent_req *req;
@@ -220,7 +221,7 @@ NTSTATUS ads_dns_lookup_srv(TALLOC_CTX *ctx,
 	}
 	status = ads_dns_lookup_srv_recv(req, ctx, dclist, &num_srvs);
 	if (NT_STATUS_IS_OK(status)) {
-		*numdcs = num_srvs;	/* size_t->int */
+		*numdcs = num_srvs;
 	}
 fail:
 	TALLOC_FREE(ev);
@@ -346,7 +347,7 @@ NTSTATUS ads_dns_lookup_ns_recv(struct tevent_req *req,
 NTSTATUS ads_dns_lookup_ns(TALLOC_CTX *ctx,
 				const char *dnsdomain,
 				struct dns_rr_ns **nslist,
-				int *numns)
+				size_t *numns)
 {
 	struct tevent_context *ev;
 	struct tevent_req *req;
@@ -790,11 +791,11 @@ static NTSTATUS ads_dns_query_internal(TALLOC_CTX *ctx,
 				       const char *realm,
 				       const char *sitename,
 				       struct dns_rr_srv **dclist,
-				       int *numdcs )
+				       size_t *numdcs )
 {
 	char *name;
 	NTSTATUS status;
-	int num_srvs = 0;
+	size_t num_srvs = 0;
 
 	if ((sitename != NULL) && (strlen(sitename) != 0)) {
 		name = talloc_asprintf(ctx, "%s._tcp.%s._sites.%s._msdcs.%s",
@@ -826,7 +827,7 @@ static NTSTATUS ads_dns_query_internal(TALLOC_CTX *ctx,
 	status = ads_dns_lookup_srv(ctx, name, dclist, &num_srvs);
 
 done:
-	*numdcs = num_srvs; /* automatic conversion size_t->int */
+	*numdcs = num_srvs;
 	return status;
 }
 
@@ -838,7 +839,7 @@ NTSTATUS ads_dns_query_dcs(TALLOC_CTX *ctx,
 			   const char *realm,
 			   const char *sitename,
 			   struct dns_rr_srv **dclist,
-			   int *numdcs )
+			   size_t *numdcs )
 {
 	NTSTATUS status;
 
@@ -860,7 +861,7 @@ NTSTATUS ads_dns_query_gcs(TALLOC_CTX *ctx,
 			   const char *realm,
 			   const char *sitename,
 			   struct dns_rr_srv **dclist,
-			   int *numdcs )
+			   size_t *numdcs )
 {
 	NTSTATUS status;
 
@@ -884,7 +885,7 @@ NTSTATUS ads_dns_query_kdcs(TALLOC_CTX *ctx,
 			    const char *dns_forest_name,
 			    const char *sitename,
 			    struct dns_rr_srv **dclist,
-			    int *numdcs )
+			    size_t *numdcs )
 {
 	NTSTATUS status;
 
@@ -905,7 +906,7 @@ NTSTATUS ads_dns_query_kdcs(TALLOC_CTX *ctx,
 NTSTATUS ads_dns_query_pdc(TALLOC_CTX *ctx,
 			   const char *dns_domain_name,
 			   struct dns_rr_srv **dclist,
-			   int *numdcs )
+			   size_t *numdcs )
 {
 	return ads_dns_query_internal(ctx,
 				      "_ldap",
@@ -924,7 +925,7 @@ NTSTATUS ads_dns_query_dcs_guid(TALLOC_CTX *ctx,
 				const char *dns_forest_name,
 				const char *domain_guid,
 				struct dns_rr_srv **dclist,
-				int *numdcs )
+				size_t *numdcs )
 {
 	/*_ldap._tcp.DomainGuid.domains._msdcs.DnsForestName */
 
diff --git a/lib/addns/dnsquery.h b/lib/addns/dnsquery.h
index 3f8cc13983b..777f1a7de6a 100644
--- a/lib/addns/dnsquery.h
+++ b/lib/addns/dnsquery.h
@@ -36,7 +36,7 @@ NTSTATUS ads_dns_lookup_srv_recv(struct tevent_req *req,
 NTSTATUS ads_dns_lookup_srv(TALLOC_CTX *ctx,
 				const char *name,
 				struct dns_rr_srv **dclist,
-				int *numdcs);
+				size_t *numdcs);
 struct tevent_req *ads_dns_lookup_ns_send(TALLOC_CTX *mem_ctx,
 					  struct tevent_context *ev,
 					  const char *name);
@@ -47,7 +47,7 @@ NTSTATUS ads_dns_lookup_ns_recv(struct tevent_req *req,
 NTSTATUS ads_dns_lookup_ns(TALLOC_CTX *ctx,
 				const char *dnsdomain,
 				struct dns_rr_ns **nslist,
-				int *numns);
+				size_t *numns);
 struct tevent_req *ads_dns_lookup_a_send(TALLOC_CTX *mem_ctx,
 				struct tevent_context *ev,
 				const char *name);
@@ -83,24 +83,24 @@ NTSTATUS ads_dns_query_dcs(TALLOC_CTX *ctx,
 			   const char *realm,
 			   const char *sitename,
 			   struct dns_rr_srv **dclist,
-			   int *numdcs );
+			   size_t *numdcs );
 NTSTATUS ads_dns_query_gcs(TALLOC_CTX *ctx,
 			   const char *realm,
 			   const char *sitename,
 			   struct dns_rr_srv **dclist,
-			   int *numdcs );
+			   size_t *numdcs );
 NTSTATUS ads_dns_query_kdcs(TALLOC_CTX *ctx,
 			    const char *dns_forest_name,
 			    const char *sitename,
 			    struct dns_rr_srv **dclist,
-			    int *numdcs );
+			    size_t *numdcs );
 NTSTATUS ads_dns_query_pdc(TALLOC_CTX *ctx,
 			   const char *dns_domain_name,
 			   struct dns_rr_srv **dclist,
-			   int *numdcs );
+			   size_t *numdcs );
 NTSTATUS ads_dns_query_dcs_guid(TALLOC_CTX *ctx,
 				const char *dns_forest_name,
 				const char *domain_guid,
 				struct dns_rr_srv **dclist,
-				int *numdcs );
+				size_t *numdcs );
 #endif	/* _ADS_DNS_H */
diff --git a/libcli/nbt/libnbt.h b/libcli/nbt/libnbt.h
index 496b2b91783..204484be73f 100644
--- a/libcli/nbt/libnbt.h
+++ b/libcli/nbt/libnbt.h
@@ -372,6 +372,6 @@ NTSTATUS resolve_lmhosts_file_as_sockaddr(TALLOC_CTX *mem_ctx,
 					  const char *name,
 					  int name_type,
 					  struct sockaddr_storage **return_iplist,
-					  int *return_count);
+					  size_t *return_count);
 
 #endif /* __LIBNBT_H__ */
diff --git a/libcli/nbt/lmhosts.c b/libcli/nbt/lmhosts.c
index 0890c0407d3..dd06e70c071 100644
--- a/libcli/nbt/lmhosts.c
+++ b/libcli/nbt/lmhosts.c
@@ -164,7 +164,7 @@ NTSTATUS resolve_lmhosts_file_as_sockaddr(TALLOC_CTX *mem_ctx,
 					  const char *name,
 					  int name_type,
 					  struct sockaddr_storage **return_iplist,
-					  int *return_count)
+					  size_t *return_count)
 {
 	/*
 	 * "lmhosts" means parse the local lmhosts file.
@@ -176,9 +176,8 @@ NTSTATUS resolve_lmhosts_file_as_sockaddr(TALLOC_CTX *mem_ctx,
 	struct sockaddr_storage return_ss;
 	NTSTATUS status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
 	TALLOC_CTX *ctx = NULL;
-
-	*return_iplist = NULL;
-	*return_count = 0;
+	size_t ret_count = 0;
+	struct sockaddr_storage *iplist = NULL;
 
 	DEBUG(3,("resolve_lmhosts: "
 		"Attempting lmhosts lookup for name %s<0x%x>\n",
@@ -207,19 +206,25 @@ NTSTATUS resolve_lmhosts_file_as_sockaddr(TALLOC_CTX *mem_ctx,
 			continue;
 		}
 
-		*return_iplist = talloc_realloc(ctx, (*return_iplist),
-						struct sockaddr_storage,
-						(*return_count)+1);
+		/* wrap check. */
+		if (ret_count + 1 < ret_count) {
+			TALLOC_FREE(ctx);
+			endlmhosts(fp);
+			return NT_STATUS_INVALID_PARAMETER;
+		}
+		iplist = talloc_realloc(ctx, iplist,
+				struct sockaddr_storage,
+				ret_count+1);
 
-		if ((*return_iplist) == NULL) {
+		if (iplist == NULL) {
 			TALLOC_FREE(ctx);
 			endlmhosts(fp);
 			DEBUG(3,("resolve_lmhosts: talloc_realloc fail !\n"));
 			return NT_STATUS_NO_MEMORY;
 		}
 
-		(*return_iplist)[*return_count] = return_ss;
-		*return_count += 1;
+		iplist[ret_count] = return_ss;
+		ret_count += 1;
 
 		/* we found something */
 		status = NT_STATUS_OK;
@@ -229,7 +234,8 @@ NTSTATUS resolve_lmhosts_file_as_sockaddr(TALLOC_CTX *mem_ctx,
 			break;
 	}
 
-	talloc_steal(mem_ctx, *return_iplist);
+	*return_count = ret_count;
+	*return_iplist = talloc_move(mem_ctx, &iplist);
 	TALLOC_FREE(ctx);
 	endlmhosts(fp);
 	return status;
diff --git a/source3/include/proto.h b/source3/include/proto.h
index b91fd8bcad4..95bd9240d9a 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -650,7 +650,7 @@ char **wins_srv_tags(void);
 void wins_srv_tags_free(char **list);
 struct in_addr wins_srv_ip_tag(const char *tag, struct in_addr src_ip);
 bool wins_server_tag_ips(const char *tag, TALLOC_CTX *mem_ctx,
-			 struct in_addr **pservers, int *pnum_servers);
+			 struct in_addr **pservers, size_t *pnum_servers);
 unsigned wins_srv_count_tag(const char *tag);
 
 #ifndef ASN1_MAX_OIDS
diff --git a/source3/include/smb.h b/source3/include/smb.h
index d2eabc63e9c..b871b0f80ab 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -688,12 +688,6 @@ struct node_status_extra {
 #endif
 #define LDAP_GC_PORT    3268
 
-/* used by the IP comparison function */
-struct ip_service {
-	struct sockaddr_storage ss;
-	unsigned port;
-};
-
 struct ea_struct {
 	uint8_t flags;
 	char *name;
diff --git a/source3/lib/wins_srv.c b/source3/lib/wins_srv.c
index 2f28a4de6fb..ea94dc1fa14 100644
--- a/source3/lib/wins_srv.c
+++ b/source3/lib/wins_srv.c
@@ -331,10 +331,10 @@ struct in_addr wins_srv_ip_tag(const char *tag, struct in_addr src_ip)
 }
 
 bool wins_server_tag_ips(const char *tag, TALLOC_CTX *mem_ctx,
-			 struct in_addr **pservers, int *pnum_servers)
+			 struct in_addr **pservers, size_t *pnum_servers)
 {
 	const char **list;
-	int i, num_servers;
+	size_t i, num_servers;
 	struct in_addr *servers;
 
 	list = lp_wins_server_list();
@@ -348,6 +348,10 @@ bool wins_server_tag_ips(const char *tag, TALLOC_CTX *mem_ctx,
 		struct tagged_ip t_ip;
 		parse_ip(&t_ip, list[i]);
 		if (strcmp(tag, t_ip.tag) == 0) {
+			/* Wrap check. */
+			if (num_servers + 1 < num_servers) {
+				return false;
+			}
 			num_servers += 1;
 		}
 	}
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
index d02d4d881e7..583067aac73 100644
--- a/source3/libads/kerberos.c
+++ b/source3/libads/kerberos.c
@@ -421,8 +421,8 @@ static char *get_kdc_ip_string(char *mem_ctx,
 {
 	TALLOC_CTX *frame = talloc_stackframe();
 	size_t i;
-	struct ip_service *ip_srv_site = NULL;
-	struct ip_service *ip_srv_nonsite = NULL;
+	struct samba_sockaddr *ip_sa_site = NULL;
+	struct samba_sockaddr *ip_sa_nonsite = NULL;
 	struct samba_sockaddr sa = {0};
 	size_t count_site = 0;
 	size_t count_nonsite;
@@ -457,7 +457,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
 		status = get_kdc_list(talloc_tos(),
 					realm,
 					sitename,
-					&ip_srv_site,
+					&ip_sa_site,
 					&count_site);
 		if (!NT_STATUS_IS_OK(status)) {
 			DBG_ERR("get_kdc_list fail %s\n",
@@ -475,7 +475,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
 	status = get_kdc_list(talloc_tos(),
 					realm,
 					NULL,
-					&ip_srv_nonsite,
+					&ip_sa_nonsite,
 					&count_nonsite);
 	if (!NT_STATUS_IS_OK(status)) {
 		DBG_ERR("get_kdc_list (site-less) fail %s\n",
@@ -503,34 +503,16 @@ static char *get_kdc_ip_string(char *mem_ctx,
 	num_dcs = 0;
 
 	for (i = 0; i < count_site; i++) {
-		struct samba_sockaddr ip_sa = {0};
-
-		ok = sockaddr_storage_to_samba_sockaddr(&ip_sa,
-						&ip_srv_site[i].ss);
-		if (!ok) {
-			TALLOC_FREE(kdc_str);
-			goto out;
-		}
-
-		if (!sockaddr_equal(&sa.u.sa, &ip_sa.u.sa)) {
+		if (!sockaddr_equal(&sa.u.sa, &ip_sa_site[i].u.sa)) {
 			add_sockaddr_unique(dc_addrs, &num_dcs,
-					    &ip_srv_site[i].ss);
+					    &ip_sa_site[i].u.ss);
 		}
 	}
 
 	for (i = 0; i < count_nonsite; i++) {
-		struct samba_sockaddr ip_sa = {0};
-
-		ok = sockaddr_storage_to_samba_sockaddr(&ip_sa,
-						&ip_srv_nonsite[i].ss);
-		if (!ok) {
-			TALLOC_FREE(kdc_str);
-			goto out;
-		}
-
-		if (!sockaddr_equal(&sa.u.sa, &ip_sa.u.sa)) {
+		if (!sockaddr_equal(&sa.u.sa, &ip_sa_nonsite[i].u.sa)) {
 			add_sockaddr_unique(dc_addrs, &num_dcs,
-					    &ip_srv_nonsite[i].ss);
+					    &ip_sa_nonsite[i].u.ss);
 		}
 	}
 
@@ -605,8 +587,8 @@ static char *get_kdc_ip_string(char *mem_ctx,
 out:
 	DEBUG(10, ("get_kdc_ip_string: Returning %s\n", kdc_str));
 
-	TALLOC_FREE(ip_srv_site);
-	TALLOC_FREE(ip_srv_nonsite);
+	TALLOC_FREE(ip_sa_site);
+	TALLOC_FREE(ip_sa_nonsite);
 	TALLOC_FREE(frame);
 	return result;
 }
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index 8fbe34a20b7..f7f0ee43213 100755
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -346,23 +346,25 @@ static bool ads_try_connect(ADS_STRUCT *ads, bool gc,
  Take note of and update negative connection cache.
 **********************************************************************/
 
-static NTSTATUS cldap_ping_list(ADS_STRUCT *ads,const char *domain,
-				struct ip_service *ip_list, int count)
+static NTSTATUS cldap_ping_list(ADS_STRUCT *ads,
+			const char *domain,
+			struct samba_sockaddr *sa_list,
+			size_t count)
 {
-	int i;
+	size_t i;
 	bool ok;
 
 	for (i = 0; i < count; i++) {
 		char server[INET6_ADDRSTRLEN];
 
-		print_sockaddr(server, sizeof(server), &ip_list[i].ss);
+		print_sockaddr(server, sizeof(server), &sa_list[i].u.ss);
 
 		if (!NT_STATUS_IS_OK(
 			check_negative_conn_cache(domain, server)))
 			continue;
 
 		/* Returns ok only if it matches the correct server type */
-		ok = ads_try_connect(ads, false, &ip_list[i].ss);
+		ok = ads_try_connect(ads, false, &sa_list[i].u.ss);
 
 		if (ok) {
 			return NT_STATUS_OK;
@@ -385,7 +387,7 @@ static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
 {
 	size_t i;
 	size_t count = 0;
-	struct ip_service *ip_list = NULL;
+	struct samba_sockaddr *sa_list = NULL;
 	NTSTATUS status;
 
 	DEBUG(6, ("resolve_and_ping_netbios: (cldap) looking for domain '%s'\n",
@@ -394,7 +396,7 @@ static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
 	status = get_sorted_dc_list(talloc_tos(),
 				domain,
 				NULL,
-				&ip_list,
+				&sa_list,
 				&count,
 				false);
 	if (!NT_STATUS_IS_OK(status)) {
@@ -407,7 +409,7 @@ static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
 		for (i = 0; i < count; ++i) {
 			char server[INET6_ADDRSTRLEN];
 
-			print_sockaddr(server, sizeof(server), &ip_list[i].ss);
+			print_sockaddr(server, sizeof(server), &sa_list[i].u.ss);
 
 			if(!NT_STATUS_IS_OK(
 				check_negative_conn_cache(realm, server))) {
@@ -420,9 +422,9 @@ static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
 		}
 	}
 
-	status = cldap_ping_list(ads, domain, ip_list, count);
+	status = cldap_ping_list(ads, domain, sa_list, count);
 
-	TALLOC_FREE(ip_list);
+	TALLOC_FREE(sa_list);
 
 	return status;
 }
@@ -436,7 +438,7 @@ static NTSTATUS resolve_and_ping_dns(ADS_STRUCT *ads, const char *sitename,
 				     const char *realm)
 {
 	size_t count = 0;
-	struct ip_service *ip_list = NULL;
+	struct samba_sockaddr *sa_list = NULL;
 	NTSTATUS status;
 
 	DEBUG(6, ("resolve_and_ping_dns: (cldap) looking for realm '%s'\n",
@@ -445,17 +447,17 @@ static NTSTATUS resolve_and_ping_dns(ADS_STRUCT *ads, const char *sitename,
 	status = get_sorted_dc_list(talloc_tos(),
 				realm,
 				sitename,
-				&ip_list,
+				&sa_list,
 				&count,
 				true);
 	if (!NT_STATUS_IS_OK(status)) {
-		TALLOC_FREE(ip_list);
+		TALLOC_FREE(sa_list);
 		return status;
 	}
 
-	status = cldap_ping_list(ads, realm, ip_list, count);
+	status = cldap_ping_list(ads, realm, sa_list, count);
 
-	TALLOC_FREE(ip_list);
+	TALLOC_FREE(sa_list);
 
 	return status;
 }
diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c
index 01e7a42cd77..4fdfe07b06a 100644
--- a/source3/libsmb/dsgetdcname.c
+++ b/source3/libsmb/dsgetdcname.c
@@ -439,14 +439,14 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
 				    const char *domain_name,
 				    uint32_t flags,


-- 
Samba Shared Repository



More information about the samba-cvs mailing list