]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapadd.c
ITS#6242
[openldap] / servers / slapd / slapadd.c
index a6cf3a2e219e52c05416564903a6b123b28a546b..b08fd3cea26ad021c270bf6a890e2f64d806d413 100644 (file)
@@ -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';