Remove the obsolete misleading comment and code related to it.
authorLingmo Zhu <zlm2006@gmail.com>
Tue, 25 Jul 2017 10:00:44 +0000 (18:00 +0800)
committerMatt Caswell <matt@openssl.org>
Thu, 3 Aug 2017 09:14:46 +0000 (10:14 +0100)
The comment "The following should not return 1, otherwise, things
are very strange" is from the very first commit of OpenSSL. The
really meaning of the comment is if the identical session can be
found from internal cache after calling get_session_cb but not
found before calling get_session_cb, it is just strange.

The value 1 was originated from the old doc of SSLeay, reversed
from the actual return value of SSL_CTX_add_session().

Anyway either return value of SSL_CTX_add_session() should not
interrupt the session resumption process. So the checking of
return value of SSL_CTX_add_session() is not necessary.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4014)

ssl/ssl_sess.c

index a1d20131878a9a5dc77303927a24dd344ddbb521..a291ead92aaf21dc344bb3685ccfe02d4c82018b 100644 (file)
@@ -545,11 +545,14 @@ int ssl_get_prev_session(SSL *s, CLIENTHELLO_MSG *hello, int *al)
                 (s->session_ctx->session_cache_mode &
                  SSL_SESS_CACHE_NO_INTERNAL_STORE)) {
                 /*
                 (s->session_ctx->session_cache_mode &
                  SSL_SESS_CACHE_NO_INTERNAL_STORE)) {
                 /*
-                 * The following should not return 1, otherwise, things are
-                 * very strange
+                 * Either return value of SSL_CTX_add_session should not
+                 * interrupt the session resumption process. The return
+                 * value is intentionally ignored.
                  */
                  */
-                if (SSL_CTX_add_session(s->session_ctx, ret))
-                    goto err;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+                SSL_CTX_add_session(s->session_ctx, ret);
+#pragma GCC diagnostic pop
             }
         }
     }
             }
         }
     }