mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-20 02:38:32 +00:00
Fix bug in keydata_alloc()
This commit is contained in:
committed by
Simon Kelley
parent
0decc869ae
commit
ba8badd6df
@@ -1333,6 +1333,8 @@ struct keydata *keydata_alloc(char *data, size_t len)
|
|||||||
{
|
{
|
||||||
struct keydata *block, *ret = NULL;
|
struct keydata *block, *ret = NULL;
|
||||||
struct keydata **prev = &ret;
|
struct keydata **prev = &ret;
|
||||||
|
size_t blen;
|
||||||
|
|
||||||
while (len > 0)
|
while (len > 0)
|
||||||
{
|
{
|
||||||
if (keyblock_free)
|
if (keyblock_free)
|
||||||
@@ -1350,9 +1352,10 @@ struct keydata *keydata_alloc(char *data, size_t len)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(block->key, data, len > KEYBLOCK_LEN ? KEYBLOCK_LEN : len);
|
blen = len > KEYBLOCK_LEN ? KEYBLOCK_LEN : len;
|
||||||
data += KEYBLOCK_LEN;
|
memcpy(block->key, data, blen);
|
||||||
len -= KEYBLOCK_LEN;
|
data += blen;
|
||||||
|
len -= blen;
|
||||||
*prev = block;
|
*prev = block;
|
||||||
prev = &block->next;
|
prev = &block->next;
|
||||||
block->next = NULL;
|
block->next = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user