value = "";
vlen = 0;
goto done;
- }
-
- if ( *s == '<' ) {
+
+ } else if ( *s == '<' ) {
s++;
url = 1;
+
} else if ( *s == ':' ) {
/* base 64 encoded value */
s++;
}
*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;
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",