commit 052d4dc305cc8f7124d5040f376d19abdedf5f68 from: Stefan Sperling date: Mon Apr 23 16:45:48 2018 UTC read tree names from imsg at the right offset commit - e033d8037031ecafbf4a99c69c25f1be778ef9d3 commit + 052d4dc305cc8f7124d5040f376d19abdedf5f68 blob - 564d5af6f1afadb90372f6f97eba30bd81194107 blob + 0aecd73351f6e1714eeb68839bda43f9fbac7e10 --- lib/privsep.c +++ lib/privsep.c @@ -514,7 +514,6 @@ get_more: while (1) { struct imsg imsg; size_t n; - uint8_t *data; size_t datalen; struct got_imsg_tree_entry ite; struct got_tree_entry *te = NULL; @@ -529,7 +528,6 @@ get_more: if (imsg.hdr.len < IMSG_HEADER_SIZE + min_datalen) return got_error(GOT_ERR_PRIVSEP_LEN); - data = imsg.data; datalen = imsg.hdr.len - IMSG_HEADER_SIZE; switch (imsg.hdr.type) { @@ -573,6 +571,7 @@ get_more: err = got_error(GOT_ERR_PRIVSEP_LEN); break; } + te = got_alloc_tree_entry_partial(); if (te == NULL) { err = got_error_from_errno(); @@ -584,7 +583,7 @@ get_more: err = got_error_from_errno(); break; } - memcpy(te->name, imsg.data, datalen); + memcpy(te->name, imsg.data + sizeof(ite), datalen); te->name[datalen] = '\0'; memcpy(te->id->sha1, ite.id, SHA1_DIGEST_LENGTH);