[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: LDIF lexing error in LDIF with CRLF terminators
Fixed in HEAD.
In the future, please note that bugs should be formally reported
using the Issue Tracking System <http://www.openldap.org/its/>.
(This list is used to discuss possible bugs, bug reports, but
is not, itself, is not a bug reporting mechanism.)
Kurt
At 04:18 PM 2002-08-02, Matthew J Backes wrote:
>Current LDIF handling in 2.0.x and 2.1.x in ldapmodify does not work
>correctly with LDIF files containing CRLF line terminators.
>
>RFC-2849, line 209 defines the line separator as CR LF or LF.
>
>Running ldapadd/ldapmodify on LDIF with CRLF causes it to exit with
>"success" after processing the first entry.
>
>i.e., given an ldif file like
>
>
>dn: ou=a, o=foo
>objectclass: top
>objectclass: organizationalUnit
>ou: a
>
>dn: ou=b, o=foo
>objectclass: top
>objectclass: organizationalUnit
>ou: b
>
>dn: ou=c, o=foo
>objectclass: top
>objectclass: organizationalUnit
>ou: c
>
>
>stored with CRLF line terminators,
>
>ldapmodify -n -a -f test.ldif
>
>replies with
>
>!adding new entry "ou=a, o=foo"
>
>
>And stops right there. Commenting out the first entry causes it to
>process only the second.
>
>I expect this problem only shows up on systems with LF line
>termination trying to process LDIF files with CRLF. (which is why no
>one else has squawked)
>
>The problem appears to be an off-by-one error in ldapmodify.c, line 1245. Trivial patch is attached:
>
>diff -wNru openldap-2.1.3-orig/clients/tools/ldapmodify.c openldap-2.1.3/clients/tools/ldapmodify.c
>--- openldap-2.1.3-orig/clients/tools/ldapmodify.c 2002-06-06 08:54:12.000000000 -0700
>+++ openldap-2.1.3/clients/tools/ldapmodify.c 2002-08-02 15:45:04.000000000 -0700
>@@ -1245,7 +1245,7 @@
> while ( fgets( line, sizeof(line), fp ) != NULL ) {
> int len = strlen( line );
>
>- if( len < 2 || ( len == 3 && *line == '\r' )) {
>+ if( len < 2 || ( len == 2 && *line == '\r' )) {
> if( buf == NULL ) {
> continue;
> } else {
>
>
>
>This should apply cleanly to both 2.0.25 and 2.1.3. I have not looked
>at the 1.2 series...
>
>Matthew Backes
>lucca@csun.edu