mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-21 23:38:49 -05:00
pacsort: don't overwrite memory if realloc fails
That makes it impossible to free it later. Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
19d373c9b9
commit
aa8a674b6b
@ -104,10 +104,11 @@ static void buffer_free(struct buffer_t *buf)
|
|||||||
static int buffer_grow(struct buffer_t *buffer)
|
static int buffer_grow(struct buffer_t *buffer)
|
||||||
{
|
{
|
||||||
size_t newsz = buffer->maxlen * 2.5;
|
size_t newsz = buffer->maxlen * 2.5;
|
||||||
buffer->mem = realloc(buffer->mem, newsz * sizeof(char));
|
char* new_mem = realloc(buffer->mem, newsz * sizeof(char));
|
||||||
if(!buffer->mem) {
|
if(!new_mem) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
buffer->mem = new_mem;
|
||||||
buffer->maxlen = newsz;
|
buffer->maxlen = newsz;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -136,11 +137,12 @@ static struct list_t *list_new(size_t initial_size)
|
|||||||
static int list_grow(struct list_t *list)
|
static int list_grow(struct list_t *list)
|
||||||
{
|
{
|
||||||
size_t newsz = list->maxcount * 2.5;
|
size_t newsz = list->maxcount * 2.5;
|
||||||
list->list = realloc(list->list, newsz * sizeof(char *));
|
void **new_list = realloc(list->list, newsz * sizeof(char *));
|
||||||
if(!list->list) {
|
if(!new_list) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list->list = new_list;
|
||||||
list->maxcount = newsz;
|
list->maxcount = newsz;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user