commit - e033d8037031ecafbf4a99c69c25f1be778ef9d3
commit + 052d4dc305cc8f7124d5040f376d19abdedf5f68
blob - 564d5af6f1afadb90372f6f97eba30bd81194107
blob + 0aecd73351f6e1714eeb68839bda43f9fbac7e10
--- lib/privsep.c
+++ lib/privsep.c
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;
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) {
err = got_error(GOT_ERR_PRIVSEP_LEN);
break;
}
+
te = got_alloc_tree_entry_partial();
if (te == NULL) {
err = got_error_from_errno();
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);