conntrack-tools/0003-conntrackd-prevent-memory-loss-if-reallocation-fails.patch
Phil Sutter 5c26870cd5 conntrack-tools-1.4.8-1
- Rebase to version 1.4.8 + fixes from upstream
2024-06-25 20:56:23 +02:00

39 lines
1.2 KiB
Diff

From 3be8c5c33b10ca581d292872e63157a2e9c2c7b4 Mon Sep 17 00:00:00 2001
From: Donald Yandt <donald.yandt@gmail.com>
Date: Sat, 2 Mar 2024 11:08:00 -0500
Subject: [PATCH] conntrackd: prevent memory loss if reallocation fails
Vector data will be lost if reallocation fails, leading to undefined
behaviour.
Signed-off-by: Donald Yandt <donald.yandt@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
(cherry picked from commit 3fae13ae9e36105d73ba012ea438366a8126e4f5)
---
src/vector.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/vector.c b/src/vector.c
index c81e7ce8412c6..92a54367d108a 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -60,13 +60,16 @@ void vector_destroy(struct vector *v)
int vector_add(struct vector *v, void *data)
{
+ void *ptr;
+
if (v->cur_elems >= v->max_elems) {
v->max_elems += DEFAULT_VECTOR_GROWTH;
- v->data = realloc(v->data, v->max_elems * v->size);
- if (v->data == NULL) {
+ ptr = realloc(v->data, v->max_elems * v->size);
+ if (!ptr) {
v->max_elems -= DEFAULT_VECTOR_GROWTH;
return -1;
}
+ v->data = ptr;
}
memcpy(v->data + (v->size * v->cur_elems), data, v->size);
v->cur_elems++;