Get rid of wrong/confusing _strdupnA usage.
This commit is contained in:
parent
f752b1246b
commit
9060d47118
|
@ -92,15 +92,15 @@ static void *_xmalloc( size_t size )
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _strdupnA [Internal] */
|
/* _xstrdup [Internal] */
|
||||||
static LPSTR _strdupnA(LPCSTR str,size_t len)
|
static LPSTR _xstrdup(LPCSTR str)
|
||||||
{
|
{
|
||||||
LPSTR ret;
|
LPSTR ret;
|
||||||
|
size_t len = strlen(str) + 1;
|
||||||
|
|
||||||
if (!str) return NULL;
|
if (!str) return NULL;
|
||||||
ret = _xmalloc( len + 1 );
|
ret = _xmalloc( len );
|
||||||
memcpy( ret, str, len );
|
memcpy( ret, str, len );
|
||||||
ret[len] = 0x00;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -698,9 +698,12 @@ static int _w95_dump_dke(LPSTR key_name,_w95creg *creg,_w95rgkn *rgkn,_w95dke *d
|
||||||
|
|
||||||
if (level <= 0) {
|
if (level <= 0) {
|
||||||
/* create new subkey name */
|
/* create new subkey name */
|
||||||
new_key_name = _strdupnA(key_name,strlen(key_name)+dkh->keynamelen+1);
|
size_t len = strlen(key_name);
|
||||||
if (strcmp(new_key_name,"") != 0) strcat(new_key_name,"\\");
|
new_key_name = _xmalloc(len+dkh->keynamelen+2);
|
||||||
strncat(new_key_name,dkh->name,dkh->keynamelen);
|
memcpy( new_key_name, key_name, len );
|
||||||
|
if (len) new_key_name[len++] = '\\';
|
||||||
|
memcpy( new_key_name + len, dkh->name, dkh->keynamelen );
|
||||||
|
new_key_name[len + dkh->keynamelen] = 0;
|
||||||
|
|
||||||
/* walk sibling keys */
|
/* walk sibling keys */
|
||||||
if (dke->next != 0xffffffff ) {
|
if (dke->next != 0xffffffff ) {
|
||||||
|
@ -730,7 +733,7 @@ static int _w95_dump_dke(LPSTR key_name,_w95creg *creg,_w95rgkn *rgkn,_w95dke *d
|
||||||
_dump_strAtoW(new_key_name,strlen(new_key_name),f,"[]");
|
_dump_strAtoW(new_key_name,strlen(new_key_name),f,"[]");
|
||||||
fprintf(f,"]\n");
|
fprintf(f,"]\n");
|
||||||
}
|
}
|
||||||
} else new_key_name = _strdupnA(key_name,strlen(key_name));
|
} else new_key_name = _xstrdup(key_name);
|
||||||
|
|
||||||
/* next sub key */
|
/* next sub key */
|
||||||
if (dke->nextsub != 0xffffffff) {
|
if (dke->nextsub != 0xffffffff) {
|
||||||
|
@ -1008,9 +1011,12 @@ static int _nt_dump_nk(LPSTR key_name,char *base,nt_nk *nk,FILE *f,int level)
|
||||||
/* create the new key */
|
/* create the new key */
|
||||||
if (level <= 0) {
|
if (level <= 0) {
|
||||||
/* create new subkey name */
|
/* create new subkey name */
|
||||||
new_key_name = _strdupnA(key_name,strlen(key_name)+nk->name_len+1);
|
size_t len = strlen(key_name);
|
||||||
if (strcmp(new_key_name,"") != 0) strcat(new_key_name,"\\");
|
new_key_name = _xmalloc( len+nk->name_len+2 );
|
||||||
strncat(new_key_name,nk->name,nk->name_len);
|
memcpy( new_key_name, key_name, len );
|
||||||
|
if (len) new_key_name[len++] = '\\';
|
||||||
|
memcpy( new_key_name + len, nk->name, nk->name_len );
|
||||||
|
new_key_name[len + nk->name_len] = 0;
|
||||||
|
|
||||||
/* write the key path (something like [Software\\Microsoft\\..]) only if:
|
/* write the key path (something like [Software\\Microsoft\\..]) only if:
|
||||||
1) key has some values
|
1) key has some values
|
||||||
|
@ -1038,7 +1044,7 @@ static int _nt_dump_nk(LPSTR key_name,char *base,nt_nk *nk,FILE *f,int level)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else new_key_name = _strdupnA(key_name,strlen(key_name));
|
} else new_key_name = _xstrdup(key_name);
|
||||||
|
|
||||||
/* loop through the subkeys */
|
/* loop through the subkeys */
|
||||||
if (nk->nr_subkeys) {
|
if (nk->nr_subkeys) {
|
||||||
|
|
Loading…
Reference in New Issue