Rewrite blockdata_retrieve() and expand_buf() to use realloc().

This commit is contained in:
Simon Kelley
2026-02-01 21:56:30 +00:00
parent 19f3e06e7a
commit fbfcf87f8b
2 changed files with 7 additions and 15 deletions
+6 -8
View File
@@ -193,22 +193,20 @@ void *blockdata_retrieve(struct blockdata *block, size_t len, void *data)
{
size_t blen;
struct blockdata *b;
uint8_t *new, *d;
uint8_t *d;
static unsigned int buff_len = 0;
static unsigned char *buff = NULL;
if (!data)
{
static unsigned int buff_len = 0;
static unsigned char *buff = NULL;
uint8_t *new;
if (len > buff_len)
{
blen = len + 1024;
if (!(new = whine_malloc(blen)))
if (!(new = whine_realloc(buff, blen)))
return NULL;
if (buff)
free(buff);
buff = new;
buff_len = blen;
}
+1 -7
View File
@@ -680,18 +680,12 @@ int expand_buf(struct iovec *iov, size_t size)
if (size <= (size_t)iov->iov_len)
return 1;
if (!(new = whine_malloc(size)))
if (!(new = whine_realloc(iov->iov_base, size)))
{
errno = ENOMEM;
return 0;
}
if (iov->iov_base)
{
memcpy(new, iov->iov_base, iov->iov_len);
free(iov->iov_base);
}
iov->iov_base = new;
iov->iov_len = size;