The branch, master has been updated
       via  54af94ff21a s4/source4/common: clang: Fix 'Dereference of undefined 
pointer value'
       via  c7c40e205d4 s4/dsdb/common: clang: Fix 'Value stored to 'cps_stdin' 
is never read'
       via  55f18757aae s4/dsdb/common: clang: Fix 'Access results in a deref 
of a null pointer'
       via  bd86df913b1 s4/dsdb/common: clang: Fix 'The left operand of '&' is 
a garbage value'
       via  79d585689e2 s4/dsdb/common: clang: Fix 'function call argument is 
an uninitialized value'
       via  6f733b5891d s4/auth/kerberos: clang: Fix Value stored to 'code' is 
never read
       via  765fc314e4a s4/auth/kerberos: clang: Fix 'value stored to 'ret' is 
never read '
      from  256684c7a86 join: Use a specific attribute order for the DsAddEntry 
nTDSDSA object

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


- Log -----------------------------------------------------------------
commit 54af94ff21a7f395133bcc13458cc2e1f52183be
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 11:34:25 2019 +0000

    s4/source4/common: clang: Fix 'Dereference of undefined pointer value'
    
    Fixes:
    
    source4/dsdb/common/util.c:3131:6: warning: Dereference of undefined 
pointer value <--[clang]
            if (res->count < 1) {
                ^
    
    /source4/dsdb/common/util.c:3207:6: warning: Dereference of undefined 
pointer value <--[clang]
            if (res->count < 1) {
                ^~~~~~~~~~
    source4/dsdb/common/util.c:4004:39: warning: Dereference of undefined 
pointer value <--[clang]
            (*wkguid_dn) = talloc_steal(mem_ctx, res->msgs[0]->dn);
                                                 ^
    source4/dsdb/common/util.c:4191:35: warning: Dereference of undefined 
pointer value <--[clang]
            ouv_value = ldb_msg_find_ldb_val(r->msgs[0], "replUpToDateVector");
    
    source4/dsdb/common/util.c:5757:13: warning: 1st function call argument is 
an uninitialized value <--[clang]
            same_nc = (ldb_dn_compare(source_nc, target_nc) == 0);
                       ^
    This fix also fixes the associated 'Access to field 'xyx' results in a
    dereference of a null pointer' warnings that also will happen when this
    is fixed
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>
    
    Autobuild-User(master): Gary Lockyer <g...@samba.org>
    Autobuild-Date(master): Wed Jul 24 05:49:14 UTC 2019 on sn-devel-184

commit c7c40e205d432342457b20312f3ebf94e15b9ff6
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 11:16:45 2019 +0000

    s4/dsdb/common: clang: Fix 'Value stored to 'cps_stdin' is never read'
    
    Fixes:
    
    source4/dsdb/common/util.c:2125:4: warning: Value stored to 'cps_stdin' is 
never read <--[clang]
                            cps_stdin = -1;
    
                            ^           ~~
    source4/dsdb/common/util.c:2132:3: warning: Value stored to 'cps_stdin' is 
never read <--[clang]
                    cps_stdin = -1;
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>

commit 55f18757aae0f7fb137217e42ced6e2e08bfbfa2
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 11:07:07 2019 +0000

    s4/dsdb/common: clang: Fix 'Access results in a deref of a null pointer'
    
    Fixes:
    
    source4/dsdb/common/util.c:2000:6: warning: Access to field 'count' results 
in a dereference of a null pointer (loaded from variable 'res') <--[clang]
            if (res->count != 1) {
                ^~~
    
    source4/dsdb/common/util.c:3281:28: warning: Access to field 'msgs' results 
in a dereference of a null pointer (loaded from variable 'res') <--[clang]
            el = ldb_msg_find_element(res->msgs[0], attr);
                                      ^~~
    source4/dsdb/common/util.c:3568:6: warning: Access to field 'count' results 
in a dereference of a null pointer (loaded from variable 'res') <--[clang]
            if (res->count != 1 || ret != LDB_SUCCESS) {
                ^~~
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>

commit bd86df913b14070e157b6a9178438f71321c8872
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 11:04:10 2019 +0000

    s4/dsdb/common: clang: Fix 'The left operand of '&' is a garbage value'
    
    Fixes:
    
    source4/dsdb/common/util.c:1964:18: warning: The left operand of '&' is a 
garbage value <--[clang]
            return (options & DS_NTDSDSA_OPT_IS_GC) != 0;
                    ~~~~~~~ ^
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>

commit 79d585689e206dc0e04a4d30f75a38dc4490d96b
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 10:42:54 2019 +0000

    s4/dsdb/common: clang: Fix 'function call argument is an uninitialized 
value'
    
    Fixes:
    
    source4/dsdb/common/util.c:1804:8: warning: 3rd function call argument is 
an uninitialized value <--[clang]
            ret = samdb_reference_dn(ldb, mem_ctx, server_ref_dn, 
"rIDSetReferences", dn);
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>

commit 6f733b5891db344ec9f3f996322213d8ac2075e5
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 10:41:19 2019 +0000

    s4/auth/kerberos: clang: Fix Value stored to 'code' is never read
    
    Fixes:
    
    source4/auth/kerberos/kerberos_util.c:645:3: warning: Value stored to 
'code' is never read <--[clang]
                    code = 0;
                    ^      ~
    1 warning generated.
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>

commit 765fc314e4aee455bae0f391a7d388584b48bb4a
Author: Noel Power <noel.po...@suse.com>
Date:   Fri Jul 5 10:24:53 2019 +0000

    s4/auth/kerberos: clang: Fix 'value stored to 'ret' is never read '
    
    Fixes:
    
    source4/auth/kerberos/kerberos_pac.c:116:2: warning: Value stored to 'ret' 
is never read <--[clang]
            ret = smb_krb5_make_pac_checksum(mem_ctx,
            ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 warning generated.
    
    Signed-off-by: Noel Power <noel.po...@suse.com>
    Reviewed-by: Gary Lockyer <g...@catalyst.net.nz>

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

Summary of changes:
 source4/auth/kerberos/kerberos_pac.c  | 11 ++++--
 source4/auth/kerberos/kerberos_util.c |  1 -
 source4/dsdb/common/util.c            | 64 ++++++++++++++++++++++++++++-------
 3 files changed, 60 insertions(+), 16 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/auth/kerberos/kerberos_pac.c 
b/source4/auth/kerberos/kerberos_pac.c
index e45a846cd88..54ef4d61b02 100644
--- a/source4/auth/kerberos/kerberos_pac.c
+++ b/source4/auth/kerberos/kerberos_pac.c
@@ -120,6 +120,13 @@
                                         &srv_checksum->type,
                                         &srv_checksum->signature);
 
+       if (ret) {
+               DBG_WARNING("making krbtgt PAC srv_checksum failed: %s\n",
+                           smb_get_krb5_error_message(context, ret, mem_ctx));
+               talloc_free(pac_data);
+               return ret;
+       }
+
        /* Then sign Server checksum */
        ret = smb_krb5_make_pac_checksum(mem_ctx,
                                         &srv_checksum->signature,
@@ -128,8 +135,8 @@
                                         &kdc_checksum->type,
                                         &kdc_checksum->signature);
        if (ret) {
-               DEBUG(2, ("making krbtgt PAC checksum failed: %s\n",
-                         smb_get_krb5_error_message(context, ret, mem_ctx)));
+               DBG_WARNING("making krbtgt PAC kdc_checksum failed: %s\n",
+                           smb_get_krb5_error_message(context, ret, mem_ctx));
                talloc_free(pac_data);
                return ret;
        }
diff --git a/source4/auth/kerberos/kerberos_util.c 
b/source4/auth/kerberos/kerberos_util.c
index 50bf8feec96..bbb5c8791ca 100644
--- a/source4/auth/kerberos/kerberos_util.c
+++ b/source4/auth/kerberos/kerberos_util.c
@@ -642,7 +642,6 @@ krb5_error_code 
smb_krb5_remove_obsolete_keytab_entries(TALLOC_CTX *mem_ctx,
                break;
        case ENOENT:
        case KRB5_KT_END:
-               code = 0;
                break;
        default:
                *error_string = talloc_asprintf(mem_ctx,
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c
index e521ed09999..51d6b243347 100644
--- a/source4/dsdb/common/util.c
+++ b/source4/dsdb/common/util.c
@@ -1794,7 +1794,7 @@ int samdb_rid_manager_dn(struct ldb_context *ldb, 
TALLOC_CTX *mem_ctx, struct ld
  */
 int samdb_rid_set_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx, struct 
ldb_dn **dn)
 {
-       struct ldb_dn *server_ref_dn;
+       struct ldb_dn *server_ref_dn = NULL;
        int ret;
 
        ret = samdb_server_reference_dn(ldb, mem_ctx, &server_ref_dn);
@@ -1957,7 +1957,7 @@ bool samdb_is_pdc(struct ldb_context *ldb)
 */
 bool samdb_is_gc(struct ldb_context *ldb)
 {
-       uint32_t options;
+       uint32_t options = 0;
        if (samdb_ntds_options(ldb, &options) != LDB_SUCCESS) {
                return false;
        }
@@ -1997,6 +1997,11 @@ int samdb_search_for_parent_domain(struct ldb_context 
*ldb, TALLOC_CTX *mem_ctx,
                talloc_free(local_ctx);
                return ret;
        }
+       /* should never be true with 'ret=LDB_SUCCESS', here to satisfy clang */
+       if (res == NULL) {
+               talloc_free(local_ctx);
+               return LDB_ERR_OTHER;
+       }
        if (res->count != 1) {
                *errstring = talloc_asprintf(mem_ctx, "Invalid dn (%s), not 
child of a domain object",
                                             ldb_dn_get_linearized(dn));
@@ -2122,14 +2127,12 @@ enum samr_ValidationStatus 
samdb_check_password(TALLOC_CTX *mem_ctx,
 
                if (write(cps_stdin, utf8_pw, utf8_len) != utf8_len) {
                        close(cps_stdin);
-                       cps_stdin = -1;
                        TALLOC_FREE(password_script);
                        TALLOC_FREE(event_ctx);
                        return SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR;
                }
 
                close(cps_stdin);
-               cps_stdin = -1;
 
                if (!tevent_req_poll(req, event_ctx)) {
                        TALLOC_FREE(password_script);
@@ -2847,7 +2850,7 @@ NTSTATUS samdb_create_foreign_security_principal(struct 
ldb_context *sam_ctx, TA
                                                 struct dom_sid *sid, struct 
ldb_dn **ret_dn) 
 {
        struct ldb_message *msg;
-       struct ldb_dn *basedn;
+       struct ldb_dn *basedn = NULL;
        char *sidstr;
        int ret;
 
@@ -3114,7 +3117,7 @@ int dsdb_find_guid_attr_by_dn(struct ldb_context *ldb,
                              struct GUID *guid)
 {
        int ret;
-       struct ldb_result *res;
+       struct ldb_result *res = NULL;
        const char *attrs[2];
        TALLOC_CTX *tmp_ctx = talloc_new(ldb);
 
@@ -3128,6 +3131,11 @@ int dsdb_find_guid_attr_by_dn(struct ldb_context *ldb,
                talloc_free(tmp_ctx);
                return ret;
        }
+       /* satisfy clang */
+       if (res == NULL) {
+               talloc_free(tmp_ctx);
+               return LDB_ERR_OTHER;
+       }
        if (res->count < 1) {
                talloc_free(tmp_ctx);
                return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
@@ -3190,7 +3198,7 @@ int dsdb_find_sid_by_dn(struct ldb_context *ldb,
                        struct ldb_dn *dn, struct dom_sid *sid)
 {
        int ret;
-       struct ldb_result *res;
+       struct ldb_result *res = NULL;
        const char *attrs[] = { "objectSid", NULL };
        TALLOC_CTX *tmp_ctx = talloc_new(ldb);
        struct dom_sid *s;
@@ -3204,6 +3212,10 @@ int dsdb_find_sid_by_dn(struct ldb_context *ldb,
                talloc_free(tmp_ctx);
                return ret;
        }
+       if (res == NULL) {
+               talloc_free(tmp_ctx);
+               return LDB_ERR_OTHER;
+       }
        if (res->count < 1) {
                talloc_free(tmp_ctx);
                return ldb_error(ldb, LDB_ERR_NO_SUCH_OBJECT, __func__);
@@ -3278,6 +3290,11 @@ WERROR dsdb_loadreps(struct ldb_context *sam_ctx, 
TALLOC_CTX *mem_ctx, struct ld
                return WERR_DS_DRA_INTERNAL_ERROR;
        }
 
+       /* satisfy clang */
+       if (res == NULL) {
+               talloc_free(tmp_ctx);
+               return WERR_DS_DRA_INTERNAL_ERROR;
+       }
        el = ldb_msg_find_element(res->msgs[0], attr);
        if (el == NULL) {
                /* it's OK to be empty */
@@ -3571,6 +3588,11 @@ int samdb_dns_host_name(struct ldb_context *sam_ctx, 
const char **host_name)
                TALLOC_FREE(tmp_ctx);
                return ret;
        }
+       /* satisfy clang */
+       if (res == NULL) {
+               TALLOC_FREE(tmp_ctx);
+               return LDB_ERR_OTHER;
+       }
 
 
        _host_name = ldb_msg_find_attr_as_string(res->msgs[0],
@@ -3983,7 +4005,7 @@ int dsdb_wellknown_dn(struct ldb_context *samdb, 
TALLOC_CTX *mem_ctx,
        const char *attrs[] = { NULL };
        int ret;
        struct ldb_dn *dn;
-       struct ldb_result *res;
+       struct ldb_result *res = NULL;
 
        /* construct the magic WKGUID DN */
        dn = ldb_dn_new_fmt(tmp_ctx, samdb, "<WKGUID=%s,%s>",
@@ -4000,6 +4022,11 @@ int dsdb_wellknown_dn(struct ldb_context *samdb, 
TALLOC_CTX *mem_ctx,
                talloc_free(tmp_ctx);
                return ret;
        }
+       /* fix clang warning */
+       if (res == NULL){
+               talloc_free(tmp_ctx);
+               return LDB_ERR_OTHER;
+       }
 
        (*wkguid_dn) = talloc_steal(mem_ctx, res->msgs[0]->dn);
        talloc_free(tmp_ctx);
@@ -4174,7 +4201,7 @@ int dsdb_load_udv_v2(struct ldb_context *samdb, struct 
ldb_dn *dn, TALLOC_CTX *m
                     struct drsuapi_DsReplicaCursor2 **cursors, uint32_t *count)
 {
        static const char *attrs[] = { "replUpToDateVector", NULL };
-       struct ldb_result *r;
+       struct ldb_result *r = NULL;
        const struct ldb_val *ouv_value;
        unsigned int i;
        int ret;
@@ -4187,7 +4214,10 @@ int dsdb_load_udv_v2(struct ldb_context *samdb, struct 
ldb_dn *dn, TALLOC_CTX *m
        if (ret != LDB_SUCCESS) {
                return ret;
        }
-
+       /* fix clang warning */
+       if (r == NULL) {
+               return LDB_ERR_OTHER;
+       }
        ouv_value = ldb_msg_find_ldb_val(r->msgs[0], "replUpToDateVector");
        if (ouv_value) {
                enum ndr_err_code ndr_err;
@@ -4260,7 +4290,7 @@ int dsdb_load_udv_v2(struct ldb_context *samdb, struct 
ldb_dn *dn, TALLOC_CTX *m
 int dsdb_load_udv_v1(struct ldb_context *samdb, struct ldb_dn *dn, TALLOC_CTX 
*mem_ctx,
                     struct drsuapi_DsReplicaCursor **cursors, uint32_t *count)
 {
-       struct drsuapi_DsReplicaCursor2 *v2;
+       struct drsuapi_DsReplicaCursor2 *v2 = NULL;
        uint32_t i;
        int ret;
 
@@ -5731,14 +5761,18 @@ bool dsdb_objects_have_same_nc(struct ldb_context *ldb,
                               struct ldb_dn *target_dn)
 {
        TALLOC_CTX *tmp_ctx;
-       struct ldb_dn *source_nc;
-       struct ldb_dn *target_nc;
+       struct ldb_dn *source_nc = NULL;
+       struct ldb_dn *target_nc = NULL;
        int ret;
        bool same_nc = true;
 
        tmp_ctx = talloc_new(mem_ctx);
 
        ret = dsdb_find_nc_root(ldb, tmp_ctx, source_dn, &source_nc);
+       /* fix clang warning */
+       if (source_nc == NULL) {
+               ret = LDB_ERR_OTHER;
+       }
        if (ret != LDB_SUCCESS) {
                DBG_ERR("Failed to find base DN for source %s\n",
                        ldb_dn_get_linearized(source_dn));
@@ -5747,6 +5781,10 @@ bool dsdb_objects_have_same_nc(struct ldb_context *ldb,
        }
 
        ret = dsdb_find_nc_root(ldb, tmp_ctx, target_dn, &target_nc);
+       /* fix clang warning */
+       if (target_nc == NULL) {
+               ret = LDB_ERR_OTHER;
+       }
        if (ret != LDB_SUCCESS) {
                DBG_ERR("Failed to find base DN for target %s\n",
                        ldb_dn_get_linearized(target_dn));


-- 
Samba Shared Repository

Reply via email to