The branch, master has been updated
       via  a5235a9d05b librpc/idl: Alias the DS_ constants in netlogon.idl to 
the NBT_SERVER equivilants
       via  4caab32f08f librpc/idl: Use nbt_server_type instead of 
netr_DsR_DcFlags netlogon.idl
       via  089f555eb73 librpc/idl: Merge missing bits into nbt_server_type in 
nbt.idl
       via  22d0aa53bfb s4-dsdb:large_ldap: Call setUpClass() method of base 
class
       via  e77c249dd54 pytest: dcerpc/dnsserver: Call setUpClass() method of 
base class
       via  d2892010e6c pytest: dcerpc/dnsserver: Remove unused import
       via  c9e12a8d982 pyldb: Fix leak
       via  715c45da6ec tests/auth_log: Simplify isRemote()
       via  59378dddbfa tests/auth_log: Rename ‘self’ parameter to ‘cls’
       via  ea7b82ad93d tests/auth_log: Call setUpClass() method of base class
       via  781990577a5 tests/auth_log: Don’t silently override remoteAddress
       via  b421d2d5cf6 tests/auth_log_winbind: Expect an empty remote address
       via  f89b0cdbbc4 tests/audit_log: Pre-compile GUID regex
       via  8dea2a43456 s4:kdc: Move parameter comments adjacent to parameters
       via  200117f5edf audit_tests: Check return value of json_new_array()
       via  80b3752052a s3:utils: Check return value of json_new_object()
       via  3ce2803f6dd lib:audit_logging:tests: Check return value of 
json_new_{object,array}()
       via  281b616ac74 lib:audit_logging: Check return value of 
json_new_object()
       via  65923be91e4 s4:kdc: Use talloc_steal() rather than 
talloc_reference()
       via  e843e590760 s4:kdc: Make parameters const
       via  fc212116dcb s4:kdc: Make functions static
       via  46677077203 s4:auth: Allocate user_info_dc->sids on correct talloc 
context
       via  f0ec5763e6d s4:kdc: Allocate user_info_dc->sids on correct talloc 
context
       via  480060ecd34 selftest: Report better error message if environment is 
unknown
       via  a1a1adb7b72 s4/messaging/py: Fix typo
       via  ca987dcb417 s4/messaging/py: Fix leaks
       via  3ce96c9ebd0 s4/messaging/py: Fix leak of p_server_id
       via  4c67cac68b7 s4/messaging/py: Check py_return_ndr_struct() return 
value
       via  28536f32daf s4/messaging/py: Fix callback return value leak
       via  cfd80303f19 s4/messaging/py: Fix leak
       via  b22c2179952 s4/messaging/py: Fix leaks
       via  77d8b6762f9 s4/messaging: Return the number of 
previously-registered functions that are removed
       via  e29c3374bcf s4/messaging/py: Fix typo
       via  48602b0e298 s4/messaging/py: Add more helpful error message for a 
wrongly-sized tuple
       via  f6b1307a852 s4/messaging/py: Document lp_ctx parameter of 
messaging.Messaging()
       via  f320b73ba6a s4/messaging/py: Remove incorrect function names in 
messaging.Messaging()
       via  a57b1cc05dd pyglue: Raise an exception on error
       via  d5df0b463ee pyglue: Check generate_random_str() return value
       via  98fcd47451b pyglue: Fix typo
       via  7e32c7655df s4:kdc: Note correct constant
      from  f1a204d3154 gp: sshd policy correctly sort policy

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


- Log -----------------------------------------------------------------
commit a5235a9d05be3e2247534beb3cd8e49a64394bf5
Author: Andrew Bartlett <abart...@samba.org>
Date:   Tue May 23 15:22:49 2023 +1200

    librpc/idl: Alias the DS_ constants in netlogon.idl to the NBT_SERVER 
equivilants
    
    Both the NBT_SERVER versions (in python scripts) and DS_ constants are
    in use in freeIPA so we can not just drop one for the other without
    discussion.
    
    Signed-off-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    
    Autobuild-User(master): Andrew Bartlett <abart...@samba.org>
    Autobuild-Date(master): Wed May 24 01:52:28 UTC 2023 on atb-devel-224

commit 4caab32f08fba897c01ae35855d5d5380d02b0e5
Author: Andrew Bartlett <abart...@samba.org>
Date:   Tue May 23 14:57:07 2023 +1200

    librpc/idl: Use nbt_server_type instead of netr_DsR_DcFlags netlogon.idl
    
    We should not keep two idential bitfield tables in two nearby IDL files.
    
    However a number of python files in Samba and in freeIPA use the 
nbt.NBT_SERVER_*
    constants, so these are the better names to keep.
    
    Signed-off-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Joseph Sutton <josephsut...@catalyst.net.nz>

commit 089f555eb735522e30207398837d657b8aa1988b
Author: Andrew Bartlett <abart...@samba.org>
Date:   Tue May 23 14:45:39 2023 +1200

    librpc/idl: Merge missing bits into nbt_server_type in nbt.idl
    
    These bits are defined in netr_DsR_DcFlags in netlogon.idl already.
    
    We need these new bits to announce FL 2012R2 and 2016 support.
    
    Signed-off-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Joseph Sutton <josephsut...@catalyst.net.nz>

commit 22d0aa53bfba3e0e95a0ec7ff53d28d91dec98f9
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:59:24 2023 +1200

    s4-dsdb:large_ldap: Call setUpClass() method of base class
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit e77c249dd54088607d54a65b583f4585755712db
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:58:44 2023 +1200

    pytest: dcerpc/dnsserver: Call setUpClass() method of base class
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit d2892010e6c782343ab9863a42790ebc1e5a887f
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:58:35 2023 +1200

    pytest: dcerpc/dnsserver: Remove unused import
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit c9e12a8d982ff9cb8e1df9943cf21672c9581bd2
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:07:08 2023 +1200

    pyldb: Fix leak
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 715c45da6ecb7d770f9b29d1cd9dc47ef876cb06
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:20:30 2023 +1200

    tests/auth_log: Simplify isRemote()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 59378dddbfa6bbe29f2d1cbff08ddbeb8ce58138
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:57:47 2023 +1200

    tests/auth_log: Rename ‘self’ parameter to ‘cls’
    
    This method operates on the class, not on an instance of the class.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit ea7b82ad93d370d043af6af337e3c3988eb12cdf
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:57:03 2023 +1200

    tests/auth_log: Call setUpClass() method of base class
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 781990577a5c936ddd9db1f40b9423042f331b71
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 13:07:07 2023 +1200

    tests/auth_log: Don’t silently override remoteAddress
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit b421d2d5cf6be41cd901cf837de41d2c8f348afe
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:04:19 2023 +1200

    tests/auth_log_winbind: Expect an empty remote address
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit f89b0cdbbc4c6f0cf8c04b81880853b52ce4b002
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Fri May 19 14:54:00 2023 +1200

    tests/audit_log: Pre-compile GUID regex
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 8dea2a434560806eeb62fa8401770af5c4a223f4
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Fri May 19 13:15:45 2023 +1200

    s4:kdc: Move parameter comments adjacent to parameters
    
    This is more consistent with the non-NULL parameters, and makes it
    easier to swap in the real values when we get them.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 200117f5edfd5690a89e4e9f08674a5c322db4f8
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 11:17:22 2023 +1200

    audit_tests: Check return value of json_new_array()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 80b3752052aa9234d8317ee6c671dcda64dcdf3f
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 11:16:56 2023 +1200

    s3:utils: Check return value of json_new_object()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 3ce2803f6dd34c33af4787f7f9ed364ad18a0cff
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 11:15:50 2023 +1200

    lib:audit_logging:tests: Check return value of json_new_{object,array}()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 281b616ac74c8a0e26d1636b948179dfd40e47c4
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 11:15:17 2023 +1200

    lib:audit_logging: Check return value of json_new_object()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 65923be91e41c35550c521975f2ae4bc835983fc
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 10:05:10 2023 +1200

    s4:kdc: Use talloc_steal() rather than talloc_reference()
    
    This is consistent with the other uses in this file (in
    authn_policy_ntlm_client() and authn_policy_server()).
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit e843e5907608c2851d82988d24ba2f294da35e8e
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 10:01:27 2023 +1200

    s4:kdc: Make parameters const
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit fc212116dcb5d4e8c8d5f60fc3389c89fe8ef80a
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 09:59:33 2023 +1200

    s4:kdc: Make functions static
    
    These functions are used only internally.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 46677077203673e90989db2b33ed0a1f4259d67b
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 09:42:46 2023 +1200

    s4:auth: Allocate user_info_dc->sids on correct talloc context
    
    ‘user_info_dc->sids’ must live for at least as long as ‘user_info_dc’,
    or a use-after-free may result.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit f0ec5763e6d4841070758cdcb8fbbc19b37006dc
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 09:21:17 2023 +1200

    s4:kdc: Allocate user_info_dc->sids on correct talloc context
    
    ‘user_info_dc->sids’ must live for at least as long as ‘user_info_dc’,
    or a use-after-free may result.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 480060ecd34472cce41b1322a2ac35c32889ca74
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 16 12:04:49 2023 +1200

    selftest: Report better error message if environment is unknown
    
    Now we get the error “environment [...] is unknown” rather than “samba
    can't start up known environment”.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit a1a1adb7b725f76d8d75a418255b65305c67c232
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 14:30:22 2023 +1200

    s4/messaging/py: Fix typo
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit ca987dcb4178a9535a6bea64d3387af0186063c5
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:52:17 2023 +1200

    s4/messaging/py: Fix leaks
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 3ce96c9ebd0b415949a7ffac9ae06125e78bc2a7
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:49:28 2023 +1200

    s4/messaging/py: Fix leak of p_server_id
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 4c67cac68b7129c6109c6bb415ae0ff2b0ea679c
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:48:56 2023 +1200

    s4/messaging/py: Check py_return_ndr_struct() return value
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 28536f32dafadcff3c4677358900e33b00684636
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:47:54 2023 +1200

    s4/messaging/py: Fix callback return value leak
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit cfd80303f191b93b6b41f12ba67f1a358b5a2e7e
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:46:56 2023 +1200

    s4/messaging/py: Fix leak
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit b22c21799527323877b330c16c23057582721abb
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:32:02 2023 +1200

    s4/messaging/py: Fix leaks
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 77d8b6762f9fcd6c94e615b4ad3977d8d836ade4
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:30:12 2023 +1200

    s4/messaging: Return the number of previously-registered functions that are 
removed
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit e29c3374bcf85a72ab91a85684b7bdf8cd955053
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 23 12:00:07 2023 +1200

    s4/messaging/py: Fix typo
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 48602b0e298009ec80d2f791cdf15694a542c2ff
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Fri May 19 12:54:11 2023 +1200

    s4/messaging/py: Add more helpful error message for a wrongly-sized tuple
    
    >>> m = Messaging((1,2,3,4,5))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: function takes exactly 1 argument (5 given)
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit f6b1307a8525b6be888504947502440c3438e427
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Fri May 19 12:41:21 2023 +1200

    s4/messaging/py: Document lp_ctx parameter of messaging.Messaging()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit f320b73ba6a6ed96dae1f69f5daf8405e84c82ff
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Fri May 19 12:39:52 2023 +1200

    s4/messaging/py: Remove incorrect function names in messaging.Messaging()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit a57b1cc05dd366fec2df7bf8e47090b5767d33d8
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 9 15:31:43 2023 +1200

    pyglue: Raise an exception on error
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit d5df0b463ee7f93cb72c75659e3d6630d04d0efd
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Tue May 9 15:30:58 2023 +1200

    pyglue: Check generate_random_str() return value
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 98fcd47451be0386f56e774e0878aae12df942e4
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Wed May 17 13:52:05 2023 +1200

    pyglue: Fix typo
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 7e32c7655dffad8cf1d3a700f25b6c8526d26a38
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Fri Sep 23 16:27:46 2022 +1200

    s4:kdc: Note correct constant
    
    KRB5_PADATA_PW_SALT is wrong. It’s an unrelated constant that just
    happens to share the same value.
    
    Heimdal uses the correct constant, kERB_ERR_TYPE_EXTENDED.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

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

Summary of changes:
 lib/audit_logging/audit_logging.c                  |  6 ++
 lib/audit_logging/tests/audit_logging_error_test.c | 17 ++++++
 lib/audit_logging/tests/audit_logging_test.c       | 25 +++++++++
 lib/ldb/pyldb.c                                    |  4 +-
 librpc/idl/nbt.idl                                 |  8 ++-
 librpc/idl/netlogon.idl                            | 46 ++++++++-------
 python/pyglue.c                                    | 23 ++++----
 python/samba/tests/audit_log_base.py               |  5 +-
 python/samba/tests/auth_log_base.py                | 35 ++++++------
 python/samba/tests/auth_log_winbind.py             |  2 +
 python/samba/tests/dcerpc/dnsserver.py             |  4 +-
 selftest/target/Samba.pm                           |  2 +-
 source3/utils/status.c                             |  4 +-
 source4/auth/sam.c                                 |  2 +-
 .../dsdb/samdb/ldb_modules/tests/test_audit_util.c |  1 +
 source4/dsdb/tests/python/large_ldap.py            |  1 +
 source4/kdc/authn_policy_util.c                    |  8 +--
 source4/kdc/mit_samba.c                            | 26 ++++-----
 source4/kdc/pac-glue.c                             | 65 ++++++++++------------
 source4/kdc/pac-glue.h                             | 16 ------
 source4/lib/messaging/messaging.c                  | 13 +++--
 source4/lib/messaging/messaging.h                  |  2 +-
 source4/lib/messaging/pymessaging.c                | 65 +++++++++++++++-------
 23 files changed, 222 insertions(+), 158 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/audit_logging/audit_logging.c 
b/lib/audit_logging/audit_logging.c
index 038012f4668..ff4cabaf129 100644
--- a/lib/audit_logging/audit_logging.c
+++ b/lib/audit_logging/audit_logging.c
@@ -1185,6 +1185,12 @@ struct json_object json_get_object(struct json_object 
*object, const char *name)
        json_t *v = NULL;
        int ret = 0;
 
+       if (json_is_invalid(&o)) {
+               DBG_ERR("Unable to get object [%s]\n", name);
+               json_free(&o);
+               return o;
+       }
+
        if (json_is_invalid(object)) {
                DBG_ERR("Invalid JSON object, unable to get object [%s]\n",
                        name);
diff --git a/lib/audit_logging/tests/audit_logging_error_test.c 
b/lib/audit_logging/tests/audit_logging_error_test.c
index bbcc074232b..a7bea9d0532 100644
--- a/lib/audit_logging/tests/audit_logging_error_test.c
+++ b/lib/audit_logging/tests/audit_logging_error_test.c
@@ -286,6 +286,7 @@ static void test_json_add_int(_UNUSED_ void **state)
 
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        /*
         * Test json integer failure
@@ -315,6 +316,7 @@ static void test_json_add_bool(_UNUSED_ void **state)
 
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        /*
         * json_boolean does not return an error code.
@@ -379,7 +381,10 @@ static void test_json_add_object(_UNUSED_ void **state)
        will_return(__wrap_json_object, false);
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
+
        value = json_new_object();
+       assert_false(json_is_invalid(&value));
 
        /*
         * Test json object set new failure
@@ -414,7 +419,10 @@ static void test_json_add_to_array(_UNUSED_ void **state)
        will_return(__wrap_json_object, false);
 
        array = json_new_array();
+       assert_false(json_is_invalid(&array));
+
        value = json_new_object();
+       assert_false(json_is_invalid(&value));
 
        /*
         * Test json array append new failure
@@ -446,6 +454,7 @@ static void test_json_add_timestamp(_UNUSED_ void **state)
 
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        /*
         * Test json string failure
@@ -547,6 +556,7 @@ static void test_json_add_version(_UNUSED_ void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object, true);
        rc = json_add_version(&object, 1, 11);
@@ -564,6 +574,7 @@ static void test_json_add_version(_UNUSED_ void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object, false);
        will_return(__wrap_json_integer, false);
@@ -583,6 +594,7 @@ static void test_json_add_version(_UNUSED_ void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object, false);
        will_return(__wrap_json_integer, false);
@@ -604,6 +616,7 @@ static void test_json_add_version(_UNUSED_ void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object, false);
        will_return(__wrap_json_integer, false);
@@ -634,6 +647,7 @@ static void test_json_add_address(_UNUSED_ void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object_set_new, JANSSON_FAILURE);
        rc = json_add_address(&object, "name", NULL);
@@ -697,6 +711,7 @@ static void test_json_add_sid(void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object_set_new, JANSSON_FAILURE);
        rc = json_add_sid(&object, "null", NULL);
@@ -727,6 +742,7 @@ static void test_json_add_guid(void **state)
         */
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        will_return(__wrap_json_object_set_new, JANSSON_FAILURE);
        rc = json_add_guid(&object, "null", NULL);
@@ -756,6 +772,7 @@ static void test_json_to_string(_UNUSED_ void **state)
 
        will_return(__wrap_json_object, false);
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        /*
         * json_dumps failure
diff --git a/lib/audit_logging/tests/audit_logging_test.c 
b/lib/audit_logging/tests/audit_logging_test.c
index d393b986cf0..d41f9517c47 100644
--- a/lib/audit_logging/tests/audit_logging_test.c
+++ b/lib/audit_logging/tests/audit_logging_test.c
@@ -69,6 +69,7 @@ static void test_json_add_int(_UNUSED_ void **state)
        intmax_t big_int = ((intmax_t)1)<<33;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
        rc = json_add_int(&object, "positive_one", 1);
        assert_int_equal(0, rc);
        rc = json_add_int(&object, "zero", 0);
@@ -117,6 +118,7 @@ static void test_json_add_bool(_UNUSED_ void **state)
        int rc = 0;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
        rc = json_add_bool(&object, "true", true);
        assert_int_equal(0, rc);
        rc = json_add_bool(&object, "false", false);
@@ -150,6 +152,7 @@ static void test_json_add_string(_UNUSED_ void **state)
        int rc = 0;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
        rc = json_add_string(&object, "null", NULL);
        assert_int_equal(0, rc);
        rc = json_add_string(&object, "empty", "");
@@ -192,7 +195,9 @@ static void test_json_add_object(_UNUSED_ void **state)
        int rc = 0;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
        other  = json_new_object();
+       assert_false(json_is_invalid(&other));
        rc = json_add_object(&object, "null", NULL);
        assert_int_equal(0, rc);
        rc = json_add_object(&object, "other", &other);
@@ -212,6 +217,7 @@ static void test_json_add_object(_UNUSED_ void **state)
 
        object.valid = false;
        after = json_new_object();
+       assert_false(json_is_invalid(&after));
        rc = json_add_object(&object, "after", &after);
        assert_int_equal(JSON_ERROR, rc);
 
@@ -235,11 +241,15 @@ static void test_json_add_to_array(_UNUSED_ void **state)
        int rc = 0;
 
        array = json_new_array();
+       assert_false(json_is_invalid(&array));
        assert_true(json_is_array(array.root));
 
        o1 = json_new_object();
+       assert_false(json_is_invalid(&o1));
        o2 = json_new_object();
+       assert_false(json_is_invalid(&o2));
        o3 = json_new_object();
+       assert_false(json_is_invalid(&o3));
 
        rc = json_add_object(&array, NULL, &o3);
        assert_int_equal(0, rc);
@@ -269,6 +279,7 @@ static void test_json_add_to_array(_UNUSED_ void **state)
 
        array.valid = false;
        after = json_new_object();
+       assert_false(json_is_invalid(&after));
        rc = json_add_object(&array, "after", &after);
        assert_int_equal(JSON_ERROR, rc);
 
@@ -296,6 +307,7 @@ static void test_json_add_timestamp(_UNUSED_ void **state)
        int ret;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        ret = gettimeofday(&tv, NULL);
        assert_int_equal(0, ret);
@@ -359,6 +371,7 @@ static void test_json_add_stringn(_UNUSED_ void **state)
        int rc = 0;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
        rc = json_add_stringn(&object, "null", NULL, 10);
        assert_int_equal(0, rc);
        rc = json_add_stringn(&object, "null-zero-len", NULL, 0);
@@ -427,6 +440,7 @@ static void test_json_add_version(_UNUSED_ void **state)
        int rc;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
        rc = json_add_version(&object, 3, 1);
        assert_int_equal(0, rc);
 
@@ -471,6 +485,7 @@ static void test_json_add_address(_UNUSED_ void **state)
        TALLOC_CTX *ctx = talloc_new(NULL);
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        rc = json_add_address(&object, "null", NULL);
        assert_int_equal(0, rc);
@@ -545,6 +560,7 @@ static void test_json_add_sid(_UNUSED_ void **state)
        int rc;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        rc = json_add_sid(&object, "null", NULL);
        assert_int_equal(0, rc);
@@ -584,6 +600,7 @@ static void test_json_add_guid(_UNUSED_ void **state)
        int rc;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        rc = json_add_guid(&object, "null", NULL);
        assert_int_equal(0, rc);
@@ -622,6 +639,7 @@ static void test_json_to_string(_UNUSED_ void **state)
        TALLOC_CTX *ctx = talloc_new(NULL);
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        s = json_to_string(ctx, &object);
        assert_string_equal("{}", s);
@@ -658,7 +676,10 @@ static void test_json_get_array(_UNUSED_ void **state)
        struct json_object o2;
        int rc;
 
+       assert_false(json_is_invalid(&stored_array));
+
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        array = json_get_array(&object, "not-there");
        assert_true(array.valid);
@@ -667,6 +688,7 @@ static void test_json_get_array(_UNUSED_ void **state)
        json_free(&array);
 
        o1 = json_new_object();
+       assert_false(json_is_invalid(&o1));
        rc = json_add_string(&o1, "value", "value-one");
        assert_int_equal(0, rc);
        rc = json_add_object(&stored_array, NULL, &o1);
@@ -698,6 +720,7 @@ static void test_json_get_array(_UNUSED_ void **state)
        array = json_get_array(&object, "stored_array");
        assert_true(json_is_array(array.root));
        o2 = json_new_object();
+       assert_false(json_is_invalid(&o2));
        rc = json_add_string(&o2, "value", "value-two");
        assert_int_equal(0, rc);
        assert_true(o2.valid);
@@ -753,6 +776,7 @@ static void test_json_get_object(_UNUSED_ void **state)
        int rc;
 
        object = json_new_object();
+       assert_false(json_is_invalid(&object));
 
        o1 = json_get_object(&object, "not-there");
        assert_true(o1.valid);
@@ -761,6 +785,7 @@ static void test_json_get_object(_UNUSED_ void **state)
        json_free(&o1);
 
        o1 = json_new_object();
+       assert_false(json_is_invalid(&o1));
        rc = json_add_string(&o1, "value", "value-one");
        assert_int_equal(0, rc);
        rc = json_add_object(&object, "stored_object", &o1);
diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c
index 11d093c0429..544d5672983 100644
--- a/lib/ldb/pyldb.c
+++ b/lib/ldb/pyldb.c
@@ -988,7 +988,9 @@ static void py_ldb_debug(void *context, enum 
ldb_debug_level level, const char *
 static void py_ldb_debug(void *context, enum ldb_debug_level level, const char 
*fmt, va_list ap)
 {
        PyObject *fn = (PyObject *)context;
-       PyObject_CallFunction(fn, discard_const_p(char, "(i,O)"), level, 
PyUnicode_FromFormatV(fmt, ap));
+       PyObject *result = NULL;
+       result = PyObject_CallFunction(fn, discard_const_p(char, "(i,O)"), 
level, PyUnicode_FromFormatV(fmt, ap));
+       Py_XDECREF(result);
 }
 
 static PyObject *py_ldb_debug_func;
diff --git a/librpc/idl/nbt.idl b/librpc/idl/nbt.idl
index 50b52a55dc4..021e9538bd7 100644
--- a/librpc/idl/nbt.idl
+++ b/librpc/idl/nbt.idl
@@ -357,10 +357,12 @@ interface nbt
                NBT_SERVER_WRITABLE                     = 0x00000100,
                NBT_SERVER_GOOD_TIMESERV                = 0x00000200,
                NBT_SERVER_NDNC                         = 0x00000400,
-               NBT_SERVER_SELECT_SECRET_DOMAIN_6       = 0x00000800,
-               NBT_SERVER_FULL_SECRET_DOMAIN_6         = 0x00001000,
+               NBT_SERVER_SELECT_SECRET_DOMAIN_6       = 0x00000800, /* 2008 / 
RODC */
+               NBT_SERVER_FULL_SECRET_DOMAIN_6         = 0x00001000, /* 2008 */
                NBT_SERVER_ADS_WEB_SERVICE              = 0x00002000,
-               NBT_SERVER_DS_8                         = 0x00004000,
+               NBT_SERVER_DS_8                 = 0x00004000, /* 2012 */
+               NBT_SERVER_DS_9                 = 0x00008000, /* 2012R2 */
+               NBT_SERVER_DS_10                        = 0x00010000, /* 2016 */
                NBT_SERVER_HAS_DNS_NAME                 = 0x20000000,
                NBT_SERVER_IS_DEFAULT_NC                = 0x40000000,
                NBT_SERVER_FOREST_ROOT                  = 0x80000000
diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index c6231c41aee..3a821c0a905 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -4,7 +4,7 @@
   who contributed!
 */
 
-import "misc.idl", "lsa.idl", "samr.idl", "security.idl";
+import "misc.idl", "lsa.idl", "samr.idl", "security.idl", "nbt.idl";
 
 #include "idl_types.h"
 
@@ -23,6 +23,26 @@ cpp_quote("#define ENC_CLAIMS_SUPPORTED 
KERB_ENCTYPE_CLAIMS_SUPPORTED")
 cpp_quote("#define ENC_RESOURCE_SID_COMPRESSION_DISABLED 
KERB_ENCTYPE_RESOURCE_SID_COMPRESSION_DISABLED")
 cpp_quote("#define NETLOGON_SERVER_PIPE_STATE_MAGIC 0x4f555358")
 
+cpp_quote("#define DS_SERVER_PDC NBT_SERVER_PDC")
+cpp_quote("#define DS_SERVER_GC NBT_SERVER_GC")
+cpp_quote("#define DS_SERVER_LDAP NBT_SERVER_LDAP")
+cpp_quote("#define DS_SERVER_DS NBT_SERVER_DS")
+cpp_quote("#define DS_SERVER_KDC NBT_SERVER_KDC")
+cpp_quote("#define DS_SERVER_TIMESERV NBT_SERVER_TIMESERV")
+cpp_quote("#define DS_SERVER_CLOSEST NBT_SERVER_CLOSEST")
+cpp_quote("#define DS_SERVER_WRITABLE NBT_SERVER_WRITABLE")
+cpp_quote("#define DS_SERVER_GOOD_TIMESERV NBT_SERVER_GOOD_TIMESERV")
+cpp_quote("#define DS_SERVER_NDNC NBT_SERVER_NDNC")
+cpp_quote("#define DS_SERVER_SELECT_SECRET_DOMAIN_6 
NBT_SERVER_SELECT_SECRET_DOMAIN_6 /* 2008 / RODC */")
+cpp_quote("#define DS_SERVER_FULL_SECRET_DOMAIN_6 
NBT_SERVER_FULL_SECRET_DOMAIN_6 /* 2008 */")
+cpp_quote("#define DS_SERVER_WEBSERV NBT_SERVER_ADS_WEB_SERVICE")
+cpp_quote("#define DS_SERVER_DS_8 NBT_SERVER_DS_8 /* 2012 */")
+cpp_quote("#define DS_SERVER_DS_9 NBT_SERVER_DS_9 /* 2012R2 */")
+cpp_quote("#define DS_SERVER_DS_10 NBT_SERVER_DS_10 /* 2016 */")
+cpp_quote("#define DS_DNS_CONTROLLER NBT_SERVER_HAS_DNS_NAME")
+cpp_quote("#define DS_DNS_DOMAIN NBT_SERVER_IS_DEFAULT_NC")
+cpp_quote("#define DS_DNS_FOREST_ROOT NBT_SERVER_FOREST_ROOT")
+
 [
   uuid("12345678-1234-abcd-ef00-01234567cffb"),
   version(1.0),
@@ -1195,28 +1215,6 @@ interface netlogon
                DS_ADDRESS_TYPE_NETBIOS         = 2
        } netr_DsRGetDCNameInfo_AddressType;
 
-       typedef [bitmap32bit] bitmap {
-               DS_SERVER_PDC                    = 0x00000001,
-               DS_SERVER_GC                     = 0x00000004,
-               DS_SERVER_LDAP                   = 0x00000008,
-               DS_SERVER_DS                     = 0x00000010,
-               DS_SERVER_KDC                    = 0x00000020,
-               DS_SERVER_TIMESERV               = 0x00000040,
-               DS_SERVER_CLOSEST                = 0x00000080,
-               DS_SERVER_WRITABLE               = 0x00000100,
-               DS_SERVER_GOOD_TIMESERV          = 0x00000200,
-               DS_SERVER_NDNC                   = 0x00000400,
-               DS_SERVER_SELECT_SECRET_DOMAIN_6 = 0x00000800, /* 2008 / RODC */
-               DS_SERVER_FULL_SECRET_DOMAIN_6   = 0x00001000, /* 2008 / RWDC */
-               DS_SERVER_WEBSERV                = 0x00002000,
-               DS_SERVER_DS_8                   = 0x00004000, /* 2012 */
-               DS_SERVER_DS_9                   = 0x00008000, /* 2012R2 */
-               DS_SERVER_DS_10                  = 0x00010000, /* 2016 */
-               DS_DNS_CONTROLLER                = 0x20000000,
-               DS_DNS_DOMAIN                    = 0x40000000,
-               DS_DNS_FOREST_ROOT               = 0x80000000
-       } netr_DsR_DcFlags;
-
        typedef [public] struct {
                [string,charset(UTF16)] uint16 *dc_unc;
                [string,charset(UTF16)] uint16 *dc_address;
@@ -1224,7 +1222,7 @@ interface netlogon
                GUID domain_guid;
                [string,charset(UTF16)] uint16 *domain_name;
                [string,charset(UTF16)] uint16 *forest_name;
-               netr_DsR_DcFlags dc_flags;
+               nbt_server_type dc_flags;
                [string,charset(UTF16)] uint16 *dc_site_name;
                [string,charset(UTF16)] uint16 *client_site_name;
        } netr_DsRGetDCNameInfo;
diff --git a/python/pyglue.c b/python/pyglue.c
index 808a86b444f..90c3d6e2895 100644
--- a/python/pyglue.c
+++ b/python/pyglue.c
@@ -48,6 +48,9 @@ static PyObject *py_generate_random_str(PyObject *self, 
PyObject *args)
                return NULL;
        }
        retstr = generate_random_str(NULL, len);
+       if (retstr == NULL) {
+               return PyErr_NoMemory();
+       }
        ret = PyUnicode_FromStringAndSize(retstr, len);
        talloc_free(retstr);
        return ret;
@@ -76,11 +79,11 @@ static PyObject *py_generate_random_password(PyObject 
*self, PyObject *args)
        retstr = generate_random_password(NULL, min, max);
        if (retstr == NULL) {
                if (errno == EINVAL) {
-                       PyErr_Format(PyExc_ValueError,
-                                    "invalid range: %zd - %zd",
-                                    min, max);
+                       return PyErr_Format(PyExc_ValueError,
+                                           "invalid range: %zd - %zd",
+                                           min, max);
                }
-               return NULL;
+               return PyErr_NoMemory();
        }
        ret = PyUnicode_FromString(retstr);
        talloc_free(retstr);
@@ -100,7 +103,7 @@ static PyObject 
*py_generate_random_machine_password(PyObject *self, PyObject *a
                /*
                 * The real range checks happens in
                 * generate_random_machine_password().
-                * Here we are just filter out any negative numbers.
+                * Here we just filter out any negative numbers.
                 */
                PyErr_Format(PyExc_ValueError,
                             "invalid range: %zd - %zd",
@@ -111,11 +114,11 @@ static PyObject 
*py_generate_random_machine_password(PyObject *self, PyObject *a
        retstr = generate_random_machine_password(NULL, min, max);
        if (retstr == NULL) {
                if (errno == EINVAL) {
-                       PyErr_Format(PyExc_ValueError,
-                                    "invalid range: %zd - %zd",
-                                    min, max);
+                       return PyErr_Format(PyExc_ValueError,
+                                           "invalid range: %zd - %zd",
+                                           min, max);
                }
-               return NULL;
+               return PyErr_NoMemory();
        }
        ret = PyUnicode_FromString(retstr);
        talloc_free(retstr);
@@ -354,7 +357,7 @@ static PyObject *py_interface_ips(PyObject *self, PyObject 
*args)
        lp_ctx = lpcfg_from_py_object(tmp_ctx, py_lp_ctx);
        if (lp_ctx == NULL) {
                talloc_free(tmp_ctx);
-               return NULL;
+               return PyErr_NoMemory();
        }
 
        load_interface_list(tmp_ctx, lp_ctx, &ifaces);
diff --git a/python/samba/tests/audit_log_base.py 
b/python/samba/tests/audit_log_base.py
index c791a1a8ca8..18f86a9d310 100644
--- a/python/samba/tests/audit_log_base.py
+++ b/python/samba/tests/audit_log_base.py
@@ -183,13 +183,14 @@ class AuditLogTestBase(samba.tests.TestCase):
             self.context["txnMessage"] = None
             self.msg_ctx.loop_once(0.001)
 
-    GUID_RE = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
+    GUID_RE = re.compile(
+        "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")
 
     #
     # Is the supplied GUID string correctly formatted
     #
     def is_guid(self, guid):
-        return re.match(self.GUID_RE, guid)
+        return self.GUID_RE.match(guid)
 
     def get_session(self):
         return self.auth_context["sessionId"]
diff --git a/python/samba/tests/auth_log_base.py 
b/python/samba/tests/auth_log_base.py
index 2026bc97a83..ebe9c3a124a 100644


-- 
Samba Shared Repository


Reply via email to