]> git.sur5r.net Git - openldap/commitdiff
ITS#7783 workaround stupid NSPR bug
authorHoward Chu <hyc@openldap.org>
Sun, 12 Jan 2014 21:43:55 +0000 (13:43 -0800)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 13 Jan 2014 19:46:36 +0000 (13:46 -0600)
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.

libraries/libldap/tls_m.c

index 072d41d56cc3ffe709353f2bae18345e7c68eb99..3dc575dc947caf909be82b3781811e47603d8669 100644 (file)
@@ -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 );
                }
        }