From 6a34512eeb7f569b0c42961694857e8e9c375483 Mon Sep 17 00:00:00 2001 From: Federico klez Culloca Date: Sat, 13 Jun 2026 20:49:50 +0200 Subject: [PATCH] checks on realloc --- parrotsay.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/parrotsay.c b/parrotsay.c index 00bb541..64e85a4 100644 --- a/parrotsay.c +++ b/parrotsay.c @@ -16,6 +16,7 @@ #include #include #include +#include char* parrot = "\ \\\n\ @@ -82,7 +83,12 @@ int main(int argc, char** argv) { size_t message_rows_length = strlen(*message_rows) + strlen(*(argv+i)) + (i == 1 ? 0 : 1); - *message_rows = realloc(*message_rows, message_rows_length); + char* tmp = realloc(*message_rows, message_rows_length); + if (tmp == NULL) { + fprintf(stderr, "Error: %s", strerror(errno)); + exit(1); + } + *message_rows = tmp; if(i != 1) { strlcat(*message_rows, " ", message_rows_length); } @@ -96,7 +102,12 @@ int main(int argc, char** argv) { while(getline(&line, &line_length, stdin) != -1) { if(rows + 1 >= buffer_size) { buffer_size *= 2; - message_rows = realloc(message_rows, sizeof(char*) * buffer_size); + char **tmp = realloc(message_rows, sizeof(char*) * buffer_size); + if (tmp == NULL) { + fprintf(stderr, "Error: %s", strerror(errno)); + exit(1); + } + message_rows = tmp; } char *untabbed_line = tabstospaces(line, 4); size_t untabbed_line_length = strlen(untabbed_line); -- 2.47.3