From: Pierangelo Masarati Date: Tue, 21 Aug 2007 14:50:08 +0000 (+0000) Subject: fix extra controls in tools X-Git-Tag: OPENLDAP_REL_ENG_2_4_MP~158 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=620d77eaf46a77132a73645bfcef5946a970b815;p=openldap fix extra controls in tools --- diff --git a/clients/tools/common.c b/clients/tools/common.c index 1c84ff2a5a..8c7469e010 100644 --- a/clients/tools/common.c +++ b/clients/tools/common.c @@ -522,20 +522,9 @@ tool_args( int argc, char **argv ) gotintr = abcan; } - } else { - char *ptr; + } else if ( tool_is_oid( control ) ) { LDAPControl *tmpctrls, ctrl; - for ( ptr = control; ptr[0] != '\0'; ptr++ ) { - if ( ptr[0] == '.' || isdigit( ptr[0] ) ) { - continue; - } - - fprintf( stderr, "Invalid general control name: %s\n", - control ); - usage(); - } - tmpctrls = (LDAPControl *)realloc( unknown_ctrls, (unknown_ctrls_num + 1)*sizeof( LDAPControl ) ); if ( tmpctrls == NULL ) { @@ -572,6 +561,11 @@ tool_args( int argc, char **argv ) unknown_ctrls[ unknown_ctrls_num ] = ctrl; unknown_ctrls_num++; + + } else { + fprintf( stderr, "Invalid general control name: %s\n", + control ); + usage(); } break; case 'f': /* read from file */ @@ -1379,7 +1373,8 @@ tool_server_controls( LDAP *ld, LDAPControl *extra_c, int count ) #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR || chaining #endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */ - || count ) ) + || count + || unknown_ctrls_num ) ) { return; }