svn commit: samba r9486 - branches/SAMBA_3_0/source/include
branches/SAMBA_3_0/source/registry trunk/source/include
trunk/source/registry
jerry at samba.org
jerry at samba.org
Mon Aug 22 19:47:57 GMT 2005
Author: jerry
Date: 2005-08-22 19:47:56 +0000 (Mon, 22 Aug 2005)
New Revision: 9486
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9486
Log:
ensure that the registry hash records are sorted by original subkey name and not the 4 character hash key
Modified:
branches/SAMBA_3_0/source/include/regfio.h
branches/SAMBA_3_0/source/registry/regfio.c
trunk/source/include/regfio.h
trunk/source/registry/regfio.c
Changeset:
Modified: branches/SAMBA_3_0/source/include/regfio.h
===================================================================
--- branches/SAMBA_3_0/source/include/regfio.h 2005-08-22 19:43:47 UTC (rev 9485)
+++ branches/SAMBA_3_0/source/include/regfio.h 2005-08-22 19:47:56 UTC (rev 9486)
@@ -80,6 +80,7 @@
typedef struct {
uint32 nk_off;
uint8 keycheck[sizeof(uint32)];
+ char *fullname;
} REGF_HASH_REC;
typedef struct {
Modified: branches/SAMBA_3_0/source/registry/regfio.c
===================================================================
--- branches/SAMBA_3_0/source/registry/regfio.c 2005-08-22 19:43:47 UTC (rev 9485)
+++ branches/SAMBA_3_0/source/registry/regfio.c 2005-08-22 19:47:56 UTC (rev 9486)
@@ -1670,7 +1670,7 @@
static int hashrec_cmp( REGF_HASH_REC *h1, REGF_HASH_REC *h2 )
{
- return StrnCaseCmp( h1->keycheck, h2->keycheck, sizeof(uint32) );
+ return strcmp( h1->fullname, h2->fullname );
}
/*******************************************************************
@@ -1722,6 +1722,7 @@
hash->nk_off = prs_offset( &nk->hbin->ps ) + nk->hbin->first_hbin_off - HBIN_HDR_SIZE;
memcpy( hash->keycheck, name, sizeof(uint32) );
+ hash->fullname = talloc_strdup( file->mem_ctx, name );
parent->subkey_index++;
/* sort the list by keyname */
@@ -1852,8 +1853,8 @@
nk->max_bytes_valuename = namelen * 2;
datalen = regval_size( r );
- if ( datalen*2 > nk->max_bytes_value )
- nk->max_bytes_value = datalen * 2;
+ if ( datalen > nk->max_bytes_value )
+ nk->max_bytes_value = datalen;
}
}
Modified: trunk/source/include/regfio.h
===================================================================
--- trunk/source/include/regfio.h 2005-08-22 19:43:47 UTC (rev 9485)
+++ trunk/source/include/regfio.h 2005-08-22 19:47:56 UTC (rev 9486)
@@ -80,6 +80,7 @@
typedef struct {
uint32 nk_off;
uint8 keycheck[sizeof(uint32)];
+ char *fullname;
} REGF_HASH_REC;
typedef struct {
Modified: trunk/source/registry/regfio.c
===================================================================
--- trunk/source/registry/regfio.c 2005-08-22 19:43:47 UTC (rev 9485)
+++ trunk/source/registry/regfio.c 2005-08-22 19:47:56 UTC (rev 9486)
@@ -1670,7 +1670,7 @@
static int hashrec_cmp( REGF_HASH_REC *h1, REGF_HASH_REC *h2 )
{
- return StrnCaseCmp( h1->keycheck, h2->keycheck, sizeof(uint32) );
+ return strcmp( h1->fullname, h2->fullname );
}
/*******************************************************************
@@ -1722,6 +1722,7 @@
hash->nk_off = prs_offset( &nk->hbin->ps ) + nk->hbin->first_hbin_off - HBIN_HDR_SIZE;
memcpy( hash->keycheck, name, sizeof(uint32) );
+ hash->fullname = talloc_strdup( file->mem_ctx, name );
parent->subkey_index++;
/* sort the list by keyname */
More information about the samba-cvs
mailing list