Hi,
On Tue, 2004-09-28 at 03:08, Leonard den Ottolander wrote:
> It appears the definition of OpenSSLDie in cryptlib.c in the
> openssl-engine-0.9.6.m is redundant. die() is no longer used in this
> version. It is substituted with if blocks instead. These are replaced
> with OPENSSL_asserts in 0.9.7.
die() should be used in ssl_asn1.c (unless another construct is
introduced that handles os.length <= sizeof ret->session_id).
See attached patch. Also applies against
openssl-e-0.9.6-stable-SNAP-20040926.
Leonard.
--
mount -t life -o ro /dev/dna /genetic/research
--- crypto/cryptlib.h.000 2004-01-29 10:42:44.000000000 +0100
+++ crypto/cryptlib.h 2004-09-28 17:02:19.000000000 +0200
@@ -97,6 +97,10 @@ extern "C" {
#define DECIMAL_SIZE(type) ((sizeof(type)*8+2)/3+1)
#define HEX_SIZE(type) ((sizeof(type)*2)
+/* die if we have to */
+void OpenSSLDie(const char *file,int line,const char *assertion);
+#define die(e) ((e) ? (void)0 : OpenSSLDie(__FILE__, __LINE__, #e))
+
#ifdef __cplusplus
}
#endif
--- ssl/ssl_asn1.c.000 2002-08-02 13:37:36.000000000 +0200
+++ ssl/ssl_asn1.c 2004-09-28 17:06:19.000000000 +0200
@@ -278,6 +278,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION
os.length = sizeof ret->session_id;
ret->session_id_length=os.length;
+ die(os.length <= sizeof ret->session_id);
memcpy(ret->session_id,os.data,os.length);
M_ASN1_D2I_get(osp,d2i_ASN1_OCTET_STRING);