Generally, these look good.  I have concerns about three (that you raised); 
quoting from your README.  Any comments from others?

+ err.c.patch
The 'int_thread_del_item' function calls 'int_thread_release' that accesses 
(*hash), but this is invalid because  'int_thread_del_item' frees 
'int_thread_hash' that can be an alias of 'hash'. This patch fixes the problem, 
but WARNING: it changes the program behavior since 'int_thread_release' now 
returns earlier and then doesn't call CRYPTO_add. Don't know whether this is 
the correct fix for this problem.

+ mem_dbg.c.patch
The 'pop_info' function return 'ret' after OPENSSL_free(ret), and the returned 
value is then tested (ret = (pop_info() != NULL)) in CRYPTO_pop_info,
which is incorrect since the address is now a dangling pointer ("indeterminate" 
in the C standard). This patch fixes the problem, but don't know whether this 
is the correct fix regarding the behavior of the 'pop_info' callers. 
Regardless, returning an address that has just been passed to free() is never 
useful and a change is necessary here.

+ Patches about catching memory allocation errors are grouped in malloc.patch
Most of them consist on adding tests about fields being non-NULL before 
accessing to sub-fields, or tests on the returned value of functions that where 
memory allocation may have failed.

_______________________________________________
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev

Reply via email to