mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
ITS#5892 return -1 from ldif_read_record on error
This commit is contained in:
parent
5b98495d5c
commit
72e319bd02
@ -240,7 +240,7 @@ main( int argc, char **argv )
|
||||
FILE *rejfp;
|
||||
struct LDIFFP *ldiffp, ldifdummy = {0};
|
||||
char *matched_msg, *error_msg;
|
||||
int rc, retval;
|
||||
int rc, retval, ldifrc;
|
||||
int len;
|
||||
int i = 0;
|
||||
int lineno, nextline = 0, lmax = 0;
|
||||
@ -326,8 +326,8 @@ main( int argc, char **argv )
|
||||
rc = 0;
|
||||
retval = 0;
|
||||
lineno = 1;
|
||||
while (( rc == 0 || contoper ) && ldif_read_record( ldiffp, &nextline,
|
||||
&rbuf, &lmax ))
|
||||
while (( rc == 0 || contoper ) && ( ldifrc = ldif_read_record( ldiffp, &nextline,
|
||||
&rbuf, &lmax )) > 0 )
|
||||
{
|
||||
if ( rejfp ) {
|
||||
len = strlen( rbuf );
|
||||
@ -369,6 +369,9 @@ main( int argc, char **argv )
|
||||
}
|
||||
ber_memfree( rbuf );
|
||||
|
||||
if ( ldifrc < 0 )
|
||||
retval = LDAP_OTHER;
|
||||
|
||||
#ifdef LDAP_X_TXN
|
||||
if( retval == 0 && txn ) {
|
||||
rc = ldap_set_option( ld, LDAP_OPT_SERVER_CONTROLS, NULL );
|
||||
|
@ -780,7 +780,8 @@ ldif_close(
|
||||
#define LDIF_MAXLINE 4096
|
||||
|
||||
/*
|
||||
* ldif_read_record - read an ldif record. Return 1 for success, 0 for EOF.
|
||||
* ldif_read_record - read an ldif record. Return 1 for success, 0 for EOF,
|
||||
* -1 for error.
|
||||
*/
|
||||
int
|
||||
ldif_read_record(
|
||||
@ -882,7 +883,7 @@ ldif_read_record(
|
||||
*/
|
||||
ber_pvt_log_printf( LDAP_DEBUG_ANY, ldif_debug,
|
||||
_("ldif_read_record: include %s failed\n"), ptr );
|
||||
return 0;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -659,7 +659,7 @@ read_baseObject(
|
||||
{
|
||||
backsql_info *bi = (backsql_info *)be->be_private;
|
||||
LDIFFP *fp;
|
||||
int rc = 0, lineno = 0, lmax = 0;
|
||||
int rc = 0, lineno = 0, lmax = 0, ldifrc;
|
||||
char *buf = NULL;
|
||||
|
||||
assert( fname != NULL );
|
||||
@ -685,7 +685,7 @@ read_baseObject(
|
||||
bi->sql_baseObject->e_nname = be->be_nsuffix[0];
|
||||
bi->sql_baseObject->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;
|
||||
|
||||
@ -704,7 +704,7 @@ read_baseObject(
|
||||
"dn=\"%s\" (line=%d)\n",
|
||||
e->e_name.bv_val, lineno );
|
||||
entry_free( e );
|
||||
rc = EXIT_FAILURE;
|
||||
rc = LDAP_OTHER;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -729,6 +729,9 @@ read_baseObject(
|
||||
}
|
||||
}
|
||||
|
||||
if ( ldifrc < 0 )
|
||||
rc = LDAP_OTHER;
|
||||
|
||||
if ( rc ) {
|
||||
entry_free( bi->sql_baseObject );
|
||||
bi->sql_baseObject = NULL;
|
||||
|
@ -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;
|
||||
|
@ -64,7 +64,7 @@ slapadd( int argc, char **argv )
|
||||
|
||||
int match;
|
||||
int checkvals;
|
||||
int lineno, nextline;
|
||||
int lineno, nextline, ldifrc;
|
||||
int lmax;
|
||||
int rc = EXIT_SUCCESS;
|
||||
int manage = 0;
|
||||
@ -142,7 +142,7 @@ slapadd( int argc, char **argv )
|
||||
}
|
||||
|
||||
/* nextline is the line number of the end of the current entry */
|
||||
for( lineno=1; ldif_read_record( ldiffp, &nextline, &buf, &lmax );
|
||||
for( lineno=1; ( ldifrc = ldif_read_record( ldiffp, &nextline, &buf, &lmax )) > 0;
|
||||
lineno=nextline+1 )
|
||||
{
|
||||
BackendDB *bd;
|
||||
@ -403,6 +403,9 @@ slapadd( int argc, char **argv )
|
||||
entry_free( e );
|
||||
}
|
||||
|
||||
if ( ldifrc < 0 )
|
||||
rc = EXIT_FAILURE;
|
||||
|
||||
bvtext.bv_len = textlen;
|
||||
bvtext.bv_val = textbuf;
|
||||
bvtext.bv_val[0] = '\0';
|
||||
|
Loading…
Reference in New Issue
Block a user