Add sanity check to ssl_get_prev_session
[openssl.git] / ssl / ssl_sess.c
index 1e1002fc8540dbff16a71a3fcfeac77df593d9bb..8b9945b475703dd261cb2ed2e20f1ba3df9033c8 100644 (file)
@@ -449,9 +449,14 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len,
     int r;
 #endif
 
-    if (len > SSL_MAX_SSL_SESSION_ID_LENGTH)
+    if (len < 0 || len > SSL_MAX_SSL_SESSION_ID_LENGTH)
         goto err;
 
+    if (session_id + len > limit) {
+        fatal = 1;
+        goto err;
+    }
+
     if (len == 0)
         try_session_cache = 0;