From 542e8c5eec37658f5bb968b0ec6cd281f2fb0c12 Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Wed, 18 Jun 2025 09:15:01 +0530 Subject: (ingest): fix asprintf into buffer referencing itself --- msg.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'msg.c') diff --git a/msg.c b/msg.c index a5a86ea..058f669 100644 --- a/msg.c +++ b/msg.c @@ -133,12 +133,18 @@ ingest(char **buffer) unsigned int size = fsize(f); char *partial_content = fcontent(f, size); + char *temp_buffer = malloc(strlen(*buffer) + 1 * sizeof(char)); + strcpy(temp_buffer, *buffer); + + free(*buffer); asprintf(buffer, "%.*s%s%s\n", match->offset, - *buffer, + temp_buffer, partial_content, - *buffer + match->offset + match->length); + temp_buffer + match->offset + match->length); + + free(temp_buffer); } free(directive); -- cgit v1.2.3