diff --git a/src/haggis.c b/src/haggis.c index ca9f73c..f84c96e 100644 --- a/src/haggis.c +++ b/src/haggis.c @@ -247,6 +247,8 @@ int haggis_load_file(FILE *stream, haggis_ft *ft) { if (haggis_load_cksum(stream, ft->file->cksum) != 0) return 1; u8 *data = malloc((size_t)len.val); + if (data == NULL) + return -1; int res = fread(data, 1, (size_t)ft->file->len.val, stream); if (res != (size_t)ft->file->len.val) { free(ft); @@ -333,6 +335,8 @@ int haggis_load_filename(FILE *stream, haggis_filename *n) { return 2; n->len = len; name = malloc((size_t)len.val); + if (name == NULL) + return -1; if (fread(name, 1, (size_t)len.val, stream) != (size_t)len.val) { free(name); return 2; @@ -379,6 +383,8 @@ haggis_typeflag haggis_filetype_from_mode(u16 mode) { haggis_node* haggis_create_node(char *file) { haggis_node *node = malloc(sizeof(haggis_node)); + if (node == NULL) + return NULL; // todo return node; }