commit 1db76ab588bf1a976b1aebb8fb5bdbec3e718b69 from: Martin Pieuchot date: Fri Jan 26 14:13:19 2018 UTC Some memory failure checks were missing. commit - 145455122b32ed62b7092524e4ba7b51724b6433 commit + 1db76ab588bf1a976b1aebb8fb5bdbec3e718b69 blob - 6b3f9d5641598cabc9489da0af101f8d881319dc blob + 0405a334afc01fcfdbfc20ec4cf636f30878f47b --- lib/object.c +++ lib/object.c @@ -203,6 +203,8 @@ parse_object_header(struct got_object **obj, char *buf return got_error(GOT_ERR_BAD_OBJ_HDR); *obj = calloc(1, sizeof(**obj)); + if (*obj == NULL) + return got_error(GOT_ERR_NO_MEM); (*obj)->type = type; (*obj)->hdrlen = hdrlen; (*obj)->size = size; blob - a754c2376543c040fa032dfb79ea805cf0c912a9 blob + 9392f6678ce431df86878842a37ac009b1e1a171 --- lib/refs.c +++ lib/refs.c @@ -53,6 +53,8 @@ parse_symref(struct got_reference **ref, const char *n } *ref = calloc(1, sizeof(**ref)); + if (*ref == NULL) + return got_error(GOT_ERR_NO_MEM); (*ref)->flags |= GOT_REF_IS_SYMBOLIC; symref = &((*ref)->ref.symref); symref->name = symref_name; @@ -79,6 +81,8 @@ parse_ref_line(struct got_reference **ref, const char return got_error(GOT_ERR_NOT_REF); *ref = calloc(1, sizeof(**ref)); + if (*ref == NULL) + return got_error(GOT_ERR_NO_MEM); (*ref)->ref.ref.name = ref_name; memcpy(&(*ref)->ref.ref.sha1, digest, SHA1_DIGEST_LENGTH); return NULL; @@ -172,10 +176,11 @@ got_ref_close(struct got_reference *ref) struct got_reference * got_ref_dup(struct got_reference *ref) { - struct got_reference *ret = calloc(1, sizeof(*ret)); + struct got_reference *ret; char *name = NULL; char *symref = NULL; + ret = calloc(1, sizeof(*ret)); if (ret == NULL) return NULL;