--- servers/slapd/root_dse.c 2009/04/27 22:50:10 1.113.2.10 +++ servers/slapd/root_dse.c 2009/07/08 00:28:21 1.113.2.11 @@ -1,5 +1,5 @@ /* root_dse.c - Provides the Root DSA-Specific Entry */ -/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.113.2.9 2009/01/22 00:01:03 kurt Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.113.2.10 2009/04/27 22:50:10 quanah Exp $ */ /* This work is part of OpenLDAP Software . * * Copyright 1999-2009 The OpenLDAP Foundation. @@ -401,7 +401,7 @@ int root_dse_read_file( const char *fname ) { struct LDIFFP *fp; - int rc = 0, lineno = 0, lmax = 0; + int rc = 0, lineno = 0, lmax = 0, ldifrc; char *buf = NULL; if ( (fp = ldif_open( fname, "r" )) == NULL ) { @@ -421,7 +421,7 @@ root_dse_read_file( const char *fname ) } usr_attr->e_attrs = NULL; - while( ldif_read_record( fp, &lineno, &buf, &lmax ) ) { + while(( ldifrc = ldif_read_record( fp, &lineno, &buf, &lmax )) > 0 ) { Entry *e = str2entry( buf ); Attribute *a; @@ -429,7 +429,7 @@ root_dse_read_file( const char *fname ) Debug( LDAP_DEBUG_ANY, "root_dse_read_file: " "could not parse entry (file=\"%s\" line=%d)\n", fname, lineno, 0 ); - rc = EXIT_FAILURE; + rc = LDAP_OTHER; break; } @@ -440,7 +440,7 @@ root_dse_read_file( const char *fname ) "- dn=\"%s\" (file=\"%s\" line=%d)\n", e->e_dn, fname, lineno ); entry_free( e ); - rc = EXIT_FAILURE; + rc = LDAP_OTHER; break; } @@ -463,6 +463,9 @@ root_dse_read_file( const char *fname ) if (rc) break; } + if ( ldifrc < 0 ) + rc = LDAP_OTHER; + if (rc) { entry_free( usr_attr ); usr_attr = NULL;