mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#2218: fix empty values w/ spaces
This commit is contained in:
parent
3f32b6fe17
commit
b215a1039b
@ -119,11 +119,11 @@ ldif_parse_line(
|
||||
value = "";
|
||||
vlen = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if ( *s == '<' ) {
|
||||
|
||||
} else if ( *s == '<' ) {
|
||||
s++;
|
||||
url = 1;
|
||||
|
||||
} else if ( *s == ':' ) {
|
||||
/* base 64 encoded value */
|
||||
s++;
|
||||
@ -142,20 +142,19 @@ ldif_parse_line(
|
||||
}
|
||||
*d = '\0';
|
||||
|
||||
/* if no value is present, error out */
|
||||
if ( *s == '\0' ) {
|
||||
ber_pvt_log_printf( LDAP_DEBUG_PARSE, ldif_debug,
|
||||
"ldif_parse_line: %s missing %svalue\n", type,
|
||||
url ? "URL " : b64 ? "base64 " : "" );
|
||||
value = NULL;
|
||||
vlen = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if ( b64 ) {
|
||||
char *byte = s;
|
||||
|
||||
value = s;
|
||||
if ( *s == '\0' ) {
|
||||
/* no value is present, error out */
|
||||
ber_pvt_log_printf( LDAP_DEBUG_PARSE, ldif_debug,
|
||||
"ldif_parse_line: %s missing base64 value\n", type );
|
||||
value = NULL;
|
||||
vlen = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
byte = value = s;
|
||||
|
||||
for ( p = s, vlen = 0; p < d; p += 4, vlen += 3 ) {
|
||||
int i;
|
||||
@ -199,6 +198,15 @@ ldif_parse_line(
|
||||
s[ vlen ] = '\0';
|
||||
|
||||
} else if ( url ) {
|
||||
if ( *s == '\0' ) {
|
||||
/* no value is present, error out */
|
||||
ber_pvt_log_printf( LDAP_DEBUG_PARSE, ldif_debug,
|
||||
"ldif_parse_line: %s missing URL value\n", type );
|
||||
value = NULL;
|
||||
vlen = 0;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if( ldif_fetch_url( s, &value, &vlen ) ) {
|
||||
ber_pvt_log_printf( LDAP_DEBUG_ANY, ldif_debug,
|
||||
"ldif_parse_line: %s: URL \"%s\" fetch failed\n",
|
||||
|
Loading…
Reference in New Issue
Block a user