From: Dan Carpenter <dan.carpen...@oracle.com>

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 <dma...@sect.tu-berlin.de>
Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Steve French <stfre...@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 fs/cifs/asn1.c |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

--- a/fs/cifs/asn1.c
+++ b/fs/cifs/asn1.c
@@ -541,8 +541,8 @@ decode_negTokenInit(unsigned char *secur
                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 *secur
                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 *secur
                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 *secur
                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;
        }
 


Reply via email to