commit b6f6773045fc2a75fd5de6bf0d880c03c4f27aaa from: Omar Polo via: Thomas Adam date: Fri Feb 03 15:22:13 2023 UTC got_imsg_packed_object: use struct instead of buffer for id ok stsp@ commit - 8f493484ff8197dccfed29dac5d18f6790cfad57 commit + b6f6773045fc2a75fd5de6bf0d880c03c4f27aaa blob - 21032f7b47716e34e6fb9d58c8c6cf9f9dadd64f blob + 5516be811db3c2c4d2d45096e1c9fc8652fabe59 --- lib/got_lib_privsep.h +++ lib/got_lib_privsep.h @@ -526,7 +526,7 @@ struct got_object_id; * GOT_IMSG_PACKED_RAW_OBJECT_REQUEST data. */ struct got_imsg_packed_object { - uint8_t id[SHA1_DIGEST_LENGTH]; + struct got_object_id id; int idx; } __attribute__((__packed__)); blob - 72df858a344baaa7631049c320a8bb04a3024eda blob + 135b137b24fdb8fc616716b4ba6fa2fced4603e7 --- lib/privsep.c +++ lib/privsep.c @@ -364,7 +364,7 @@ got_privsep_send_commit_req(struct imsgbuf *ibuf, int memset(&iobj, 0, sizeof(iobj)); if (pack_idx != -1) { /* commit is packed */ iobj.idx = pack_idx; - memcpy(iobj.id, id->sha1, sizeof(iobj.id)); + memcpy(&iobj.id, id, sizeof(iobj.id)); data = &iobj; len = sizeof(iobj); } else { @@ -423,7 +423,7 @@ got_privsep_send_tag_req(struct imsgbuf *ibuf, int fd, memset(&iobj, 0, sizeof(iobj)); if (pack_idx != -1) { /* tag is packed */ iobj.idx = pack_idx; - memcpy(iobj.id, id->sha1, sizeof(iobj.id)); + memcpy(&iobj.id, id, sizeof(iobj.id)); data = &iobj; len = sizeof(iobj); } else { @@ -450,7 +450,7 @@ got_privsep_send_blob_req(struct imsgbuf *ibuf, int in memset(&iobj, 0, sizeof(iobj)); if (pack_idx != -1) { /* blob is packed */ iobj.idx = pack_idx; - memcpy(iobj.id, id->sha1, sizeof(iobj.id)); + memcpy(&iobj.id, id, sizeof(iobj.id)); data = &iobj; len = sizeof(iobj); } else { @@ -1957,7 +1957,7 @@ got_privsep_send_packed_obj_req(struct imsgbuf *ibuf, memset(&iobj, 0, sizeof(iobj)); iobj.idx = idx; - memcpy(iobj.id, id->sha1, sizeof(iobj.id)); + memcpy(&iobj.id, id, sizeof(iobj.id)); if (imsg_compose(ibuf, GOT_IMSG_PACKED_OBJECT_REQUEST, 0, 0, -1, &iobj, sizeof(iobj)) == -1) @@ -1975,7 +1975,7 @@ got_privsep_send_packed_raw_obj_req(struct imsgbuf *ib memset(&iobj, 0, sizeof(iobj)); iobj.idx = idx; - memcpy(iobj.id, id->sha1, sizeof(iobj.id)); + memcpy(&iobj.id, id, sizeof(iobj.id)); if (imsg_compose(ibuf, GOT_IMSG_PACKED_RAW_OBJECT_REQUEST, 0, 0, -1, &iobj, sizeof(iobj)) == -1) blob - 2d8a494fd6985be88a80609324aa75abab76b77d blob + 3ecb5321e9344977699d15e9f11df8e2c6eef2e3 --- libexec/got-read-pack/got-read-pack.c +++ libexec/got-read-pack/got-read-pack.c @@ -95,7 +95,7 @@ object_request(struct imsg *imsg, struct imsgbuf *ibuf if (datalen != sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); obj = got_object_cache_get(objcache, &id); if (obj) { @@ -162,7 +162,7 @@ commit_request(struct imsg *imsg, struct imsgbuf *ibuf if (datalen != sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); err = open_commit(&commit, pack, packidx, iobj.idx, &id, objcache); if (err) @@ -237,7 +237,7 @@ tree_request(struct imsg *imsg, struct imsgbuf *ibuf, if (datalen != sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); err = open_tree(&buf, entries, nentries, nentries_alloc, pack, packidx, iobj.idx, &id, objcache); @@ -332,7 +332,7 @@ blob_request(struct imsg *imsg, struct imsgbuf *ibuf, if (datalen != sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); obj = got_object_cache_get(objcache, &id); if (obj) { @@ -393,7 +393,7 @@ tag_request(struct imsg *imsg, struct imsgbuf *ibuf, s if (datalen != sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); obj = got_object_cache_get(objcache, &id); if (obj) { @@ -617,7 +617,7 @@ commit_traversal_request(struct imsg *imsg, struct ims if (datalen < sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); path_len = datalen - sizeof(iobj) - 1; if (path_len < 0) @@ -801,7 +801,7 @@ raw_object_request(struct imsg *imsg, struct imsgbuf * if (datalen != sizeof(iobj)) return got_error(GOT_ERR_PRIVSEP_LEN); memcpy(&iobj, imsg->data, sizeof(iobj)); - memcpy(id.sha1, iobj.id, SHA1_DIGEST_LENGTH); + memcpy(&id, &iobj.id, sizeof(id)); obj = got_object_cache_get(objcache, &id); if (obj) {