cifs: remove bogus debug code
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 16 Sep 2020 20:18:21 +0000 (23:18 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 08:07:00 +0000 (09:07 +0100)
commit d367cb960ce88914898cbfa43645c2e43ede9465 upstream.

The "end" pointer is either NULL or it points to the next byte to parse.
If there isn't a next byte then dereferencing "end" is an off-by-one out
of bounds error.  And, of course, if it's NULL that leads to an Oops.
Printing "*end" doesn't seem very useful so let's delete this code.

Also for the last debug statement, I noticed that it should be printing
"sequence_end" instead of "end" so fix that as well.

Reported-by: Dominik Maier <dmaier@sect.tu-berlin.de>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/cifs/asn1.c

index a3b56544c21b96599fa97f0df02a5fd2c6317678..ae1f2817bd6a663093ab66fcd6ab2bac917922d0 100644 (file)
@@ -541,8 +541,8 @@ decode_negTokenInit(unsigned char *security_blob, int length,
                return 0;
        } else if ((cls != ASN1_CTX) || (con != ASN1_CON)
                   || (tag != ASN1_EOC)) {
-               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p (%d) exit 0\n",
-                        cls, con, tag, end, *end);
+               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p exit 0\n",
+                        cls, con, tag, end);
                return 0;
        }
 
@@ -552,8 +552,8 @@ decode_negTokenInit(unsigned char *security_blob, int length,
                return 0;
        } else if ((cls != ASN1_UNI) || (con != ASN1_CON)
                   || (tag != ASN1_SEQ)) {
-               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p (%d) exit 1\n",
-                        cls, con, tag, end, *end);
+               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p exit 1\n",
+                        cls, con, tag, end);
                return 0;
        }
 
@@ -563,8 +563,8 @@ decode_negTokenInit(unsigned char *security_blob, int length,
                return 0;
        } else if ((cls != ASN1_CTX) || (con != ASN1_CON)
                   || (tag != ASN1_EOC)) {
-               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p (%d) exit 0\n",
-                        cls, con, tag, end, *end);
+               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p exit 0\n",
+                        cls, con, tag, end);
                return 0;
        }
 
@@ -575,8 +575,8 @@ decode_negTokenInit(unsigned char *security_blob, int length,
                return 0;
        } else if ((cls != ASN1_UNI) || (con != ASN1_CON)
                   || (tag != ASN1_SEQ)) {
-               cifs_dbg(FYI, "cls = %d con = %d tag = %d end = %p (%d) exit 1\n",
-                        cls, con, tag, end, *end);
+               cifs_dbg(FYI, "cls = %d con = %d tag = %d sequence_end = %p exit 1\n",
+                        cls, con, tag, sequence_end);
                return 0;
        }