auth: gensec: asn1 fixes - check all returns.
authorJeremy Allison <jra@samba.org>
Fri, 19 Sep 2014 19:41:22 +0000 (12:41 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 25 Sep 2014 22:51:16 +0000 (00:51 +0200)
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
auth/gensec/gensec_util.c

index 568128add153327b82086aeee0d6307ef1b920d7..b8e38b7f7c9714080ee40025d13b550a88a599ac 100644 (file)
@@ -188,19 +188,20 @@ NTSTATUS gensec_packet_full_request(struct gensec_security *gensec_security,
 */
 static bool gensec_gssapi_check_oid(const DATA_BLOB *blob, const char *oid)
 {
-       bool ret;
+       bool ret = false;
        struct asn1_data *data = asn1_init(NULL);
 
        if (!data) return false;
 
-       asn1_load(data, *blob);
-       asn1_start_tag(data, ASN1_APPLICATION(0));
-       asn1_check_OID(data, oid);
+       if (!asn1_load(data, *blob)) goto err;
+       if (!asn1_start_tag(data, ASN1_APPLICATION(0))) goto err;
+       if (!asn1_check_OID(data, oid)) goto err;
 
        ret = !data->has_error;
 
-       asn1_free(data);
+  err:
 
+       asn1_free(data);
        return ret;
 }