From 620d77eaf46a77132a73645bfcef5946a970b815 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Tue, 21 Aug 2007 14:50:08 +0000 Subject: [PATCH] fix extra controls in tools --- clients/tools/common.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) 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; } -- 2.39.5