MozNSS: ignore certdb database type prefix when checking existence of the directory If the certdb is specified including the database type prefix (e.g. sql:, dbm:), the prefix has to be ignored when checking the certificate directory existence. Author: Jan Vcelak Upstream ITS: #7388 Resolves: #857373 --- libraries/libldap/tls_m.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c index 49a3f8f..5ee21a2 100644 --- a/libraries/libldap/tls_m.c +++ b/libraries/libldap/tls_m.c @@ -1633,6 +1633,7 @@ tlsm_get_certdb_prefix( const char *certdir, char **realcertdir, char **prefix ) { char sep = PR_GetDirectorySeparator(); char *ptr = NULL; + char *chkpath = NULL; struct PRFileInfo prfi; PRStatus prc; @@ -1643,8 +1644,16 @@ tlsm_get_certdb_prefix( const char *certdir, char **realcertdir, char **prefix ) return; } - prc = PR_GetFileInfo( certdir, &prfi ); + /* ignore database type prefix (e.g. sql:, dbm:) if provided */ + chkpath = strchr( certdir, ':' ); + if ( chkpath != NULL ) { + chkpath += 1; + } else { + chkpath = certdir; + } + /* if certdir exists (file or directory) then it cannot specify a prefix */ + prc = PR_GetFileInfo( chkpath, &prfi ); if ( prc == PR_SUCCESS ) { return; } -- 1.7.11.7