p = q;
q = strchr( p, '?' );
- if( q == NULL ) {
- /* no '?' */
+ if( q != NULL ) {
+ *q++ = '\0';
+ }
+ if( *p != '\0' ) {
hex_unescape( p );
ludp->lud_attrs = ldap_str2charray( p, "," );
ldap_free_urldesc( ludp );
return LDAP_URL_ERR_BADATTRS;
}
-
+ }
+ if ( q == NULL ) {
+ /* no '?' */
LDAP_FREE( url );
*ludpp = ludp;
return LDAP_URL_SUCCESS;
}
- *q++ = '\0';
- hex_unescape( p );
- ludp->lud_attrs = ldap_str2charray( p, "," );
-
/* scan forward for '?' that may marks end of scope */
p = q;
q = strchr( p, '?' );
- if( q == NULL ) {
- /* no '?' */
- hex_unescape( p );
- ludp->lud_scope = str2scope( p );
-
- if( ludp->lud_scope == -1 ) {
- LDAP_FREE( url );
- ldap_free_urldesc( ludp );
- return LDAP_URL_ERR_BADSCOPE;
- }
-
- LDAP_FREE( url );
- *ludpp = ludp;
- return LDAP_URL_SUCCESS;
+ if( q != NULL ) {
+ *q++ = '\0';
}
-
- *q++ = '\0';
- hex_unescape( p );
-
if( *p != '\0' ) {
+ hex_unescape( p );
ludp->lud_scope = str2scope( p );
if( ludp->lud_scope == -1 ) {
ldap_free_urldesc( ludp );
return LDAP_URL_ERR_BADSCOPE;
}
-
+ }
+ if ( q == NULL ) {
+ /* no '?' */
LDAP_FREE( url );
*ludpp = ludp;
return LDAP_URL_SUCCESS;
p = q;
q = strchr( p, '?' );
+ if( q != NULL ) {
+ *q++ = '\0';
+ }
if( *p != '\0' ) {
- /* no '?' */
hex_unescape( p );
if( ! *p ) {
ldap_free_urldesc( ludp );
return LDAP_URL_ERR_MEM;
}
-
+ }
+ if ( q == NULL ) {
+ /* no '?' */
LDAP_FREE( url );
*ludpp = ludp;
return LDAP_URL_SUCCESS;
}
- *q++ = '\0';
- hex_unescape( p );
-
- if( *p != '\0' ) {
- ludp->lud_filter = LDAP_STRDUP( p );
-
- if( ludp->lud_filter == NULL ) {
- LDAP_FREE( url );
- ldap_free_urldesc( ludp );
- return LDAP_URL_ERR_MEM;
- }
- }
-
/* scan forward for '?' that may marks end of extensions */
p = q;
q = strchr( p, '?' );