mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05:00 
			
		
		
		
	Note that mbedtls_ctr_drbg_seed() must not be called twice
You can't reuse a CTR_DRBG context without free()ing it and re-init()ing it. This generally happened to work, but was never guaranteed. It could have failed with alternative implementations of the AES module because mbedtls_ctr_drbg_seed() calls mbedtls_aes_init() on a context which is already initialized if mbedtls_ctr_drbg_seed() hasn't been called before, plausibly causing a memory leak. Since the addition of mbedtls_ctr_drbg_set_nonce_len(), the second call to mbedtls_ctr_drbg_seed() uses a nonsensical value as the entropy nonce length. Calling free() and seed() with no intervening init fails when MBEDTLS_THREADING_C is enabled and all-bits-zero is not a valid mutex representation.
This commit is contained in:
		
							parent
							
								
									f0ebbfb3fc
								
							
						
					
					
						commit
						bd326f93d4
					
				@ -278,6 +278,13 @@ void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx );
 | 
			
		||||
 *                      (maximum achievable strength when using AES-256).
 | 
			
		||||
 *
 | 
			
		||||
 * \param ctx           The CTR_DRBG context to seed.
 | 
			
		||||
 *                      It must have been initialized with
 | 
			
		||||
 *                      mbedtls_ctr_drbg_init().
 | 
			
		||||
 *                      After a successful call to mbedtls_ctr_drbg_seed(),
 | 
			
		||||
 *                      you may not call mbedtls_ctr_drbg_seed() again on
 | 
			
		||||
 *                      the same context unless you call
 | 
			
		||||
 *                      mbedtls_ctr_drbg_free() and mbedtls_ctr_drbg_init()
 | 
			
		||||
 *                      again first.
 | 
			
		||||
 * \param f_entropy     The entropy callback, taking as arguments the
 | 
			
		||||
 *                      \p p_entropy context, the buffer to fill, and the
 | 
			
		||||
 *                      length of the buffer.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user