[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
no whitespace compression in dn (ITS#852)
Full_Name: David Cooper
Version: 2.0.6
OS: Red Hat Linux 6.2
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (129.6.54.72)
The normalization process for DNs does not compress whitespace within attribute
values nor does it eliminate whitespace at the end of the DN. For example, if a
DN of the form
dn: cn=User1, ou=NIST, o=U.S. Government, c=US
is entered into the database, a search with a base of "o=U.S. Government, c=US
"
will not find the entry.
I was able to correct these problems by adding a few lines of code to the
dn_validate function in openldap-2.0.6/servers/slapd/dn.c.
First, under the section "case INVALUE:", I replaced
} else {
*d++ = *s;
}
with
} else if ( ASCII_SPACE( *s ) ) {
if ( !ASCII_SPACE( *(d - 1) ) ) {
*d++ = ' ';
}
} else {
*d++ = *s;
}
second, after the for loop, but before the line "*d = '\0';", I added the
following lines:
if (state != B4LEADTYPE) {
while ( ASCII_SPACE( *(d - 1) ) )
d--;
}
These changes seem to have fixed the problem, however, given that I am not very
familiar with the code, I can not be sure that this was the best way to fix the
problem or that it solves the problem entirely.
Dave