From: Federico klez Culloca Date: Sat, 13 Jun 2026 18:49:50 +0000 (+0200) Subject: checks on realloc X-Git-Url: https://git.klezlab.it/?a=commitdiff_plain;h=6a34512eeb7f569b0c42961694857e8e9c375483;p=klez%2Fparrotsay-lite.git checks on realloc --- 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);