]> git.sur5r.net Git - openldap/commitdiff
ITS#7291 MozNSS: read pin from file file can cause infinite loop
authorJan Vcelak <jvcelak@redhat.com>
Wed, 6 Jun 2012 12:44:53 +0000 (14:44 +0200)
committerHoward Chu <hyc@openldap.org>
Thu, 7 Jun 2012 12:05:08 +0000 (05:05 -0700)
The buffer allocated for reading password file has to be initialized
with zeros, or we need to append zero at the end of the file. Otherwise
we might read unitialized memory and consider it to be a password.

libraries/libldap/tls_m.c

index d71fec74ad044f4ae7a4397303232c7f76d7c473..2e755ebd18ebcd7963413ca65ca3e1956999841f 100644 (file)
@@ -786,7 +786,7 @@ tlsm_get_pin_from_file(const char *token_name, tlsm_ctx *ctx)
        }
 
        /* create a buffer to hold the file contents */
-       if ( !( contents = PR_MALLOC( file_info.size + 1 ) ) ) {
+       if ( !( contents = PR_CALLOC( file_info.size + 1 ) ) ) {
                PRErrorCode errcode = PR_GetError();
                Debug( LDAP_DEBUG_ANY,
                       "TLS: could not alloc a buffer for contents of pin file %s - error %d:%s.\n",