aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-06-18 09:15:01 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-06-18 09:15:01 +0530
commit542e8c5eec37658f5bb968b0ec6cd281f2fb0c12 (patch)
tree6966e161a85652a5c024bbac988d5cd7fa41e368
parente0943aced8105e229a08322ce5b44472c042deee (diff)
(ingest): fix asprintf into buffer referencing itself
-rw-r--r--msg.c10
1 files changed, 8 insertions, 2 deletions
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);