commit 8914529dc5d3a0f394dbcc3e90fd63ba329bb824 from: Stefan Sperling date: Sat Apr 13 16:55:07 2019 UTC make parse_tree_entry() require a mode field commit - fae40e36ea831cb0bccfe17a88f52f7451dd013e commit + 8914529dc5d3a0f394dbcc3e90fd63ba329bb824 blob - 20bd1a170fc63b0edd610524b6a28970c9d6fee8 blob + 0fe7cbd09118fad59fdb3a386a21b4f6883aefd7 --- lib/object_parse.c +++ lib/object_parse.c @@ -595,7 +595,7 @@ static const struct got_error * parse_tree_entry(struct got_tree_entry **te, size_t *elen, char *buf, size_t maxlen) { - char *p = buf, *space; + char *p, *space; const struct got_error *err = NULL; *te = got_alloc_tree_entry_partial(); @@ -610,14 +610,15 @@ parse_tree_entry(struct got_tree_entry **te, size_t *e } space = memchr(buf, ' ', *elen); - if (space == NULL) { + if (space == NULL || space <= buf) { err = got_error(GOT_ERR_BAD_OBJ_DATA); free(*te); *te = NULL; return err; } (*te)->mode = 0; - while (*p != ' ') { + p = buf; + while (p < space) { if (*p < '0' && *p > '7') { err = got_error(GOT_ERR_BAD_OBJ_DATA); goto done;