cifsd: add goto fail in neg_token_init_mech_type()
authorNamjae Jeon <namjae.jeon@samsung.com>
Wed, 26 May 2021 06:24:39 +0000 (15:24 +0900)
committerNamjae Jeon <namjae.jeon@samsung.com>
Wed, 26 May 2021 09:11:45 +0000 (18:11 +0900)
Add goto fail in neg_token_init_mech_type().

Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifsd/asn1.c

index a7db37e..769fa32 100644 (file)
@@ -284,14 +284,10 @@ int neg_token_init_mech_type(void *context, size_t hdrlen,
        unsigned long *oid;
        size_t oidlen;
        int mech_type;
+       char buf[50];
 
-       if (!asn1_oid_decode(value, vlen, &oid, &oidlen)) {
-               char buf[50];
-
-               sprint_oid(value, vlen, buf, sizeof(buf));
-               ksmbd_debug(AUTH, "Unexpected OID: %s\n", buf);
-               return -EBADMSG;
-       }
+       if (!asn1_oid_decode(value, vlen, &oid, &oidlen))
+               goto fail;
 
        if (oid_eq(oid, oidlen, NTLMSSP_OID, NTLMSSP_OID_LEN))
                mech_type = KSMBD_AUTH_NTLMSSP;
@@ -302,15 +298,20 @@ int neg_token_init_mech_type(void *context, size_t hdrlen,
        else if (oid_eq(oid, oidlen, KRB5U2U_OID, KRB5U2U_OID_LEN))
                mech_type = KSMBD_AUTH_KRB5U2U;
        else
-               goto out;
+               goto fail;
 
        conn->auth_mechs |= mech_type;
        if (conn->preferred_auth_mech == 0)
                conn->preferred_auth_mech = mech_type;
 
-out:
        kfree(oid);
        return 0;
+
+fail:
+       kfree(oid);
+       sprint_oid(value, vlen, buf, sizeof(buf));
+       ksmbd_debug(AUTH, "Unexpected OID: %s\n", buf);
+       return -EBADMSG;
 }
 
 int neg_token_init_mech_token(void *context, size_t hdrlen,