cifsd: add goto fail in asn1_oid_decode()
authorNamjae Jeon <namjae.jeon@samsung.com>
Wed, 26 May 2021 06:22:37 +0000 (15:22 +0900)
committerNamjae Jeon <namjae.jeon@samsung.com>
Wed, 26 May 2021 09:11:35 +0000 (18:11 +0900)
Add goto fail in asn1_oid_decode() to clean-up exception handling code.

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 aa6ea85..f2628dc 100644 (file)
@@ -74,11 +74,8 @@ static bool asn1_oid_decode(const unsigned char *value, size_t vlen,
 
        optr = *oid;
 
-       if (!asn1_subid_decode(&iptr, end, &subid)) {
-               kfree(*oid);
-               *oid = NULL;
-               return false;
-       }
+       if (!asn1_subid_decode(&iptr, end, &subid))
+               goto fail;
 
        if (subid < 40) {
                optr[0] = 0;
@@ -95,19 +92,18 @@ static bool asn1_oid_decode(const unsigned char *value, size_t vlen,
        optr += 2;
 
        while (iptr < end) {
-               if (++(*oidlen) > vlen) {
-                       kfree(*oid);
-                       *oid = NULL;
-                       return false;
-               }
+               if (++(*oidlen) > vlen)
+                       goto fail;
 
-               if (!asn1_subid_decode(&iptr, end, optr++)) {
-                       kfree(*oid);
-                       *oid = NULL;
-                       return false;
-               }
+               if (!asn1_subid_decode(&iptr, end, optr++))
+                       goto fail;
        }
        return true;
+
+fail:
+       kfree(*oid);
+       *oid = NULL;
+       return false;
 }
 
 static bool