Fixed some uninitialised variables
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Thu, 18 Jun 2009 09:16:16 +0000 (11:16 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 19 Jun 2009 01:32:01 +0000 (11:32 +1000)
I tried hard to not change the program logic. Should fix bug #6439.

source4/auth/kerberos/gssapi_parse.c
source4/dsdb/schema/schema_syntax.c
source4/lib/registry/regf.c
source4/lib/tls/tls.c
source4/utils/ntlm_auth.c

index 489ebcaa8394bf9c8ec16d50bab30f3a21d7f082..b538d822d130c47810b208a4597d5ecb90f13f72 100644 (file)
@@ -35,12 +35,8 @@ DATA_BLOB gensec_gssapi_gen_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLOB *tick
        struct asn1_data *data;
        DATA_BLOB ret;
 
-       if (!data || !ticket->data) {
-               return data_blob(NULL,0);
-       }
-
        data = asn1_init(mem_ctx);
-       if (data == NULL) {
+       if (!data || !ticket->data) {
                return data_blob(NULL,0);
        }
 
index 4ff861766fda3d0d22fb5be8ffe048691bd9a4ab..c26b407c1f2e3a98f886d4f4dd267e425f756ec7 100644 (file)
@@ -829,17 +829,14 @@ static WERROR dsdb_syntax_UNICODE_ldb_to_drsuapi(struct ldb_context *ldb,
        W_ERROR_HAVE_NO_MEMORY(blobs);
 
        for (i=0; i < in->num_values; i++) {
-               ssize_t ret;
-
                out->value_ctr.values[i].blob   = &blobs[i];
 
-               if (!convert_string_talloc_convenience(blobs, schema->iconv_convenience, CH_UNIX, CH_UTF16,
-                                           in->values[i].data,
-                                           in->values[i].length,
-                                           (void **)&blobs[i].data, NULL, false)) {
-                       return WERR_FOOBAR;
+               if (!convert_string_talloc_convenience(blobs,
+                       schema->iconv_convenience, CH_UNIX, CH_UTF16,
+                       in->values[i].data, in->values[i].length,
+                       (void **)&blobs[i].data, &blobs[i].length, false)) {
+                               return WERR_FOOBAR;
                }
-               blobs[i].length = ret;
        }
 
        return WERR_OK;
index fbb9cd9de91015d7401095774867a5af4e1bd2e5..6d4ea1b68807b1deeae37c05df89dab4004d1b85 100644 (file)
@@ -1727,7 +1727,8 @@ static WERROR regf_add_key(TALLOC_CTX *ctx, const struct hive_key *parent,
 
        if (!hbin_get_tdr(regf, regf->header->data_offset, root,
                          (tdr_pull_fn_t)tdr_pull_nk_block, root)) {
-               DEBUG(0, ("Unable to find HBIN data for offset %d\n", offset));
+               DEBUG(0, ("Unable to find HBIN data for offset %d\n",
+                       regf->header->data_offset));
                return WERR_GENERAL_FAILURE;
        }
        nk.sk_offset = root->sk_offset;
index 1014ab07a8a672757f1e186c2e17200d4edfd3ea..8a5ee89b87f56646b9038326931392677bf0bbc0 100644 (file)
@@ -547,7 +547,6 @@ struct socket_context *tls_init_client(struct socket_context *socket_ctx,
        struct tls_context *tls;
        int ret = 0;
        const int cert_type_priority[] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
-       char *cafile;
        struct socket_context *new_sock;
        NTSTATUS nt_status;
        
@@ -574,7 +573,7 @@ struct socket_context *tls_init_client(struct socket_context *socket_ctx,
        gnutls_global_init();
 
        gnutls_certificate_allocate_credentials(&tls->xcred);
-       gnutls_certificate_set_x509_trust_file(tls->xcred, cafile, GNUTLS_X509_FMT_PEM);
+       gnutls_certificate_set_x509_trust_file(tls->xcred, ca_path, GNUTLS_X509_FMT_PEM);
        TLSCHECK(gnutls_init(&tls->session, GNUTLS_CLIENT));
        TLSCHECK(gnutls_set_default_priority(tls->session));
        gnutls_certificate_type_set_priority(tls->session, cert_type_priority);
index 1c9eabe09ad89fde9347595af32d1d7a51482191..97a983c9cd4ce21a6ecfe3ea278e5307b76b06d4 100644 (file)
@@ -465,6 +465,9 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
        if (!ev) {
                exit(1);
        }
+
+       mem_ctx = talloc_named(NULL, 0, "manage_gensec_request internal mem_ctx");
+
        /* setup gensec */
        if (!(state->gensec_state)) {
                switch (stdio_helper_mode) {
@@ -475,6 +478,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        nt_status = gensec_client_start(NULL, &state->gensec_state, ev, 
                                                        lp_gensec_settings(NULL, lp_ctx));
                        if (!NT_STATUS_IS_OK(nt_status)) {
+                               talloc_free(mem_ctx);
                                exit(1);
                        }
 
@@ -488,6 +492,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        msg = messaging_client_init(state, lp_messaging_path(state, lp_ctx), 
                                                    lp_iconv_convenience(lp_ctx), ev);
                        if (!msg) {
+                               talloc_free(mem_ctx);
                                exit(1);
                        }
                        nt_status = auth_context_create_methods(mem_ctx, 
@@ -498,17 +503,20 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                                                                &auth_context);
        
                        if (!NT_STATUS_IS_OK(nt_status)) {
+                               talloc_free(mem_ctx);
                                exit(1);
                        }
                        
                        if (!NT_STATUS_IS_OK(gensec_server_start(state, ev, 
                                                                 lp_gensec_settings(state, lp_ctx), 
                                                                 auth_context, &state->gensec_state))) {
+                               talloc_free(mem_ctx);
                                exit(1);
                        }
                        break;
                }
                default:
+                       talloc_free(mem_ctx);
                        abort();
                }
 
@@ -559,20 +567,21 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        nt_status = gensec_start_mech_by_oid(state->gensec_state, GENSEC_OID_NTLMSSP);
                        break;
                default:
+                       talloc_free(mem_ctx);
                        abort();
                }
 
                if (!NT_STATUS_IS_OK(nt_status)) {
                        DEBUG(1, ("GENSEC mech failed to start: %s\n", nt_errstr(nt_status)));
                        mux_printf(mux_id, "BH GENSEC mech failed to start\n");
+                       talloc_free(mem_ctx);
                        return;
                }
 
        }
 
        /* update */
-       mem_ctx = talloc_named(NULL, 0, "manage_gensec_request internal mem_ctx");
-       
+
        if (strncmp(buf, "PW ", 3) == 0) {
                state->set_password = talloc_strndup(state,
                                                     (const char *)in.data,