Double check if a cached suite is available, overwrite any old suite state
authorMartin Willi <martin@revosec.ch>
Tue, 7 Feb 2012 10:41:56 +0000 (11:41 +0100)
committerMartin Willi <martin@revosec.ch>
Tue, 7 Feb 2012 10:42:57 +0000 (11:42 +0100)
src/libtls/tls_crypto.c

index d8930ac..4d84876 100644 (file)
@@ -1598,7 +1598,7 @@ METHOD(tls_crypto_t, resume_session, tls_cipher_suite_t,
                this->suite = this->cache->lookup(this->cache, session, id, &master);
                if (this->suite)
                {
-                       select_cipher_suite(this, &this->suite, 1, KEY_ANY);
+                       this->suite = select_cipher_suite(this, &this->suite, 1, KEY_ANY);
                        if (this->suite)
                        {
                                this->prf->set_key(this->prf, master);
@@ -1606,8 +1606,9 @@ METHOD(tls_crypto_t, resume_session, tls_cipher_suite_t,
                        }
                        chunk_clear(&master);
                }
+               return this->suite;
        }
-       return this->suite;
+       return 0;
 }
 
 METHOD(tls_crypto_t, get_session, chunk_t,