summaryrefslogtreecommitdiff
path: root/main/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/event.c')
-rw-r--r--main/event.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/event.c b/main/event.c
index 0f0406f55..d183e585e 100644
--- a/main/event.c
+++ b/main/event.c
@@ -311,13 +311,17 @@ static int event_append_ie_raw(struct ast_event **event, enum ast_event_ie_type
const void *data, size_t data_len)
{
struct ast_event_ie *ie;
+ struct ast_event *old_event;
unsigned int extra_len;
uint16_t event_len;
event_len = ntohs((*event)->event_len);
extra_len = sizeof(*ie) + data_len;
- if (!(*event = ast_realloc(*event, event_len + extra_len))) {
+ old_event = *event;
+ *event = ast_realloc(*event, event_len + extra_len);
+ if (!*event) {
+ ast_free(old_event);
return -1;
}