diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-11-21 19:47:48 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:16:00 -0500 |
commit | c8951115792a8be64b294de68f47679c3c3ed28f (patch) | |
tree | da34ed8cb86230ecb265750c25555e3274d2392a /source3/rpc_server | |
parent | bb4fb75b2216f9f58e8f8fad43bc39634148b315 (diff) | |
download | samba-c8951115792a8be64b294de68f47679c3c3ed28f.tar.gz samba-c8951115792a8be64b294de68f47679c3c3ed28f.tar.xz samba-c8951115792a8be64b294de68f47679c3c3ed28f.zip |
r19824: Fix the max value calculation in QueryInfoKey
(This used to be commit cd14b7f05234f540601cd2c5841a52dd047c965d)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_winreg_nt.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/source3/rpc_server/srv_winreg_nt.c b/source3/rpc_server/srv_winreg_nt.c index c45be08454..23b594ac78 100644 --- a/source3/rpc_server/srv_winreg_nt.c +++ b/source3/rpc_server/srv_winreg_nt.c @@ -163,7 +163,6 @@ static BOOL get_value_information( REGISTRY_KEY *key, uint32 *maxnum, uint32 *maxlen, uint32 *maxsize ) { REGVAL_CTR *values; - REGISTRY_VALUE *val; uint32 sizemax, lenmax; int i, num_values; @@ -178,15 +177,17 @@ static BOOL get_value_information( REGISTRY_KEY *key, uint32 *maxnum, lenmax = sizemax = 0; num_values = regval_ctr_numvals( values ); - - val = regval_ctr_specific_value( values, 0 ); - - for ( i=0; i<num_values && val; i++ ) - { - lenmax = MAX(lenmax, val->valuename ? strlen(val->valuename)+1 : 0 ); + + for ( i=0; i<num_values; i++ ) { + REGISTRY_VALUE *val; + + if (!(val = regval_ctr_specific_value( values, i ))) { + break; + } + + lenmax = MAX(lenmax, val->valuename ? + strlen(val->valuename)+1 : 0 ); sizemax = MAX(sizemax, val->size ); - - val = regval_ctr_specific_value( values, i ); } *maxnum = num_values; |