Download raw body.
use proper type for got_imsg_enumerated_commit
in this case there's also an existing math error in privsep.c while computing the size of the imsg: sizeof(struct ...) already accounts for the hash digest, so no need to add to it. commit 259994d85b8a255b5d9b1176870695cd5350bb19 (main) from: Omar Polo <op@omarpolo.com> date: Wed Jul 10 16:15:14 2024 UTC use proper type for got_imsg_enumerated_commit diff 0f9ed2af036df203ad7b7e5b7e54756bf36a7c4c 259994d85b8a255b5d9b1176870695cd5350bb19 commit - 0f9ed2af036df203ad7b7e5b7e54756bf36a7c4c commit + 259994d85b8a255b5d9b1176870695cd5350bb19 blob - 86c780f1b39bd6593b1deb94215ecf9405b05740 blob + 7511786325d8e67359b25d6e5a6983eaf0f84457 --- lib/got_lib_privsep.h +++ lib/got_lib_privsep.h @@ -592,7 +592,7 @@ struct got_imsg_traversed_commits { /* Structure for GOT_IMSG_ENUMERATED_COMMIT */ struct got_imsg_enumerated_commit { - uint8_t id[SHA1_DIGEST_LENGTH]; + struct got_object_id id; time_t mtime; } __attribute__((__packed__)); blob - 337a7e73209bcce74e47b6f588ebc9eef0119ae9 blob + e51908c9bc07441fc896089ee1c96ad436e9c94a --- lib/privsep.c +++ lib/privsep.c @@ -2824,12 +2824,12 @@ got_privsep_send_enumerated_commit(struct imsgbuf *ibu struct ibuf *wbuf; wbuf = imsg_create(ibuf, GOT_IMSG_ENUMERATED_COMMIT, 0, 0, - sizeof(struct got_imsg_enumerated_commit) + SHA1_DIGEST_LENGTH); + sizeof(struct got_imsg_enumerated_commit)); if (wbuf == NULL) return got_error_from_errno("imsg_create ENUMERATED_COMMIT"); /* Keep in sync with struct got_imsg_enumerated_commit! */ - if (imsg_add(wbuf, id, SHA1_DIGEST_LENGTH) == -1) + if (imsg_add(wbuf, id, sizeof(*id)) == -1) return got_error_from_errno("imsg_add ENUMERATED_COMMIT"); if (imsg_add(wbuf, &mtime, sizeof(mtime)) == -1) return got_error_from_errno("imsg_add ENUMERATED_COMMIT"); @@ -2880,7 +2880,7 @@ got_privsep_recv_enumerated_objects(int *found_all_obj break; } icommit = (struct got_imsg_enumerated_commit *)imsg.data; - memcpy(commit_id.sha1, icommit->id, SHA1_DIGEST_LENGTH); + memcpy(&commit_id, &icommit->id, sizeof(commit_id)); mtime = icommit->mtime; have_commit = 1; break;
use proper type for got_imsg_enumerated_commit