]> git.klezlab.it Git - klez/parrotsay-lite.git/commitdiff
checks on realloc
authorFederico klez Culloca <klez@klezlab.it>
Sat, 13 Jun 2026 18:49:50 +0000 (20:49 +0200)
committerFederico klez Culloca <klez@klezlab.it>
Sat, 13 Jun 2026 18:49:50 +0000 (20:49 +0200)
parrotsay.c

index 00bb54122f70aad19cba294ac82580146003dc65..64e85a4db818fbb6ff7058c3d2c62a6d8a1f5795 100644 (file)
@@ -16,6 +16,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <errno.h>
 
 char* parrot = "\
        \\\e[49m\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);