Fix bug with ssl_cache and max_entries=0
diff --git a/ChangeLog b/ChangeLog
index a2505aa..5d48ef8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -33,6 +33,8 @@
    * Programs rsa_sign_pss and rsa_verify_pss were not using PSS since 1.3.0
    * Bignum's MIPS-32 assembly was used on MIPS-64, causing chaos. (Found by
      Alex Wilson.)
+   * Fixed bug in ssl_cache: when max_entries = 0 and TIMING_C is enabled,
+     entries would still be created.
 
 = PolarSSL 1.3.4 released on 2014-01-27
 Features
diff --git a/include/polarssl/ssl_cache.h b/include/polarssl/ssl_cache.h
index daa07ac..16144fe 100644
--- a/include/polarssl/ssl_cache.h
+++ b/include/polarssl/ssl_cache.h
@@ -106,7 +106,7 @@
  *                 A timeout of 0 indicates no timeout.
  *
  * \param cache    SSL cache context
- * \param timeout  cache entry timeout
+ * \param timeout  cache entry timeout in seconds
  */
 void ssl_cache_set_timeout( ssl_cache_context *cache, int timeout );
 #endif /* POLARSSL_HAVE_TIME */
diff --git a/library/ssl_cache.c b/library/ssl_cache.c
index 6fff54b..d94a7d9 100644
--- a/library/ssl_cache.c
+++ b/library/ssl_cache.c
@@ -186,8 +186,14 @@
         /*
          * Reuse oldest entry if max_entries reached
          */
-        if( old != NULL && count >= cache->max_entries )
+        if( count >= cache->max_entries )
         {
+            if( old == NULL )
+            {
+                ret = 1;
+                goto exit;
+            }
+
             cur = old;
             memset( &cur->session, 0, sizeof(ssl_session) );
 #if defined(POLARSSL_X509_CRT_PARSE_C)
@@ -228,6 +234,9 @@
 #endif /* POLARSSL_HAVE_TIME */
         else
         {
+            /*
+             * max_entries not reached, create new entry
+             */
             cur = (ssl_cache_entry *) polarssl_malloc( sizeof(ssl_cache_entry) );
             if( cur == NULL )
             {