summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_reg_nt.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_server/srv_reg_nt.c')
-rw-r--r--source3/rpc_server/srv_reg_nt.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source3/rpc_server/srv_reg_nt.c b/source3/rpc_server/srv_reg_nt.c
index 580ab78f74..72e0631e8b 100644
--- a/source3/rpc_server/srv_reg_nt.c
+++ b/source3/rpc_server/srv_reg_nt.c
@@ -219,34 +219,35 @@ static BOOL get_subkey_information( REGISTRY_KEY *key, uint32 *maxnum, uint32 *m
static BOOL get_value_information( REGISTRY_KEY *key, uint32 *maxnum,
uint32 *maxlen, uint32 *maxsize )
{
- REGVAL_CTR val;
+ REGVAL_CTR values;
+ REGISTRY_VALUE *val;
uint32 sizemax, lenmax;
- int num_values;
+ int i, num_values;
if ( !key )
return False;
ZERO_STRUCTP( &val );
- regval_ctr_init( &val );
+ regval_ctr_init( &values );
- if ( fetch_reg_values( key, &val ) == -1 )
+ if ( fetch_reg_values( key, &values ) == -1 )
return False;
lenmax = sizemax = 0;
- num_values = regval_ctr_numvals( &val );
+ num_values = regval_ctr_numvals( &values );
-#if 0 /* JERRY */
- for ( i=0; i<num_values; i++ ) {
+ for ( i=0; i<num_values && val; i++ ) {
+ val = regval_ctr_specific_value( &values, i );
lenmax = MAX(lenmax, strlen(val[i].valuename)+1 );
sizemax = MAX(sizemax, val[i].size );
}
-#endif
+
*maxnum = num_values;
*maxlen = lenmax;
*maxsize = sizemax;
- regval_ctr_destroy( &val );
+ regval_ctr_destroy( &values );
return True;
}