commit - 68bf1b1e462cf3deb61b932f79be607fa0ab82c5
commit + a58a49db3dfdb2555f9268e868ca449115c6745a
blob - 43c618f77945763e50aba3cf395284d36a9b45f6
blob + 678c40e37b4f2e268efd6badd4abd57ff4b1349b
--- lib/privsep.c
+++ lib/privsep.c
totlen = sizeof(itree);
nimsg = 1;
SIMPLEQ_FOREACH(te, &tree->entries.head, entry) {
- struct got_imsg_tree_entry ite;
+ struct got_imsg_tree_entry *ite;
uint8_t *buf = NULL;
- size_t len = sizeof(ite) + strlen(te->name);
+ size_t len = sizeof(*ite) + strlen(te->name);
if (len > MAX_IMSGSIZE)
return got_error(GOT_ERR_NO_SPACE);
if (buf == NULL)
return got_error_from_errno();
- memcpy(ite.id, te->id->sha1, sizeof(ite.id));
- ite.mode = te->mode;
- memcpy(buf, &ite, sizeof(ite));
- memcpy(buf + sizeof(ite), te->name, strlen(te->name));
+ ite = (struct got_imsg_tree_entry *)buf;
+ memcpy(ite->id, te->id->sha1, sizeof(ite->id));
+ ite->mode = te->mode;
+ memcpy(buf + sizeof(*ite), te->name, strlen(te->name));
if (imsg_compose(ibuf, GOT_IMSG_TREE_ENTRY, 0, 0, -1,
buf, len) == -1)