commit a58a49db3dfdb2555f9268e868ca449115c6745a from: Stefan Sperling date: Wed Nov 07 07:50:59 2018 UTC avoid unnecessary memcpy in got_privsep_send_tree() commit - 68bf1b1e462cf3deb61b932f79be607fa0ab82c5 commit + a58a49db3dfdb2555f9268e868ca449115c6745a blob - 43c618f77945763e50aba3cf395284d36a9b45f6 blob + 678c40e37b4f2e268efd6badd4abd57ff4b1349b --- lib/privsep.c +++ lib/privsep.c @@ -624,9 +624,9 @@ got_privsep_send_tree(struct imsgbuf *ibuf, struct got 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); @@ -643,10 +643,10 @@ got_privsep_send_tree(struct imsgbuf *ibuf, struct got 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)