From: Howard Chu Date: Sun, 12 Jan 2014 21:43:55 +0000 (-0800) Subject: ITS#7783 workaround stupid NSPR bug X-Git-Tag: OPENLDAP_REL_ENG_2_4_39~6 X-Git-Url: https://git.sur5r.net/?p=openldap;a=commitdiff_plain;h=d15f4e2f09b7b046e44c361a3b7295676933a3f3 ITS#7783 workaround stupid NSPR bug free(NULL) is supposed to be safe. "Portable wrapper libraries" that fail to preserve this behavior are inherently broken. But then again, this is Mozilla code, so that's redundant. --- diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c index 072d41d56c..3dc575dc94 100644 --- a/libraries/libldap/tls_m.c +++ b/libraries/libldap/tls_m.c @@ -2064,8 +2064,10 @@ tlsm_ctx_free ( tls_ctx *ctx ) errcode, PR_ErrorToString( errcode, PR_LANGUAGE_I_DEFAULT ), 0 ); } } - PL_strfree( c->tc_pin_file ); - c->tc_pin_file = NULL; + if ( c->tc_pin_file ) { + PL_strfree( c->tc_pin_file ); + c->tc_pin_file = NULL; + } tlsm_free_pem_objs( c ); #ifdef HAVE_NSS_INITCONTEXT if ( c->tc_initctx ) { @@ -2315,7 +2317,8 @@ tlsm_deferred_ctx_init( void *arg ) return rc; } } else { - PL_strfree( ctx->tc_pin_file ); + if ( ctx->tc_pin_file ) + PL_strfree( ctx->tc_pin_file ); ctx->tc_pin_file = PL_strdup( lt->lt_keyfile ); } }