commit - b685c8da4da0617ce1f98749fbd7014bda6d3fc3
commit + 076fbedce1fccdd95af706a8b068aa8a49c88165
blob - 55cb4225a7ff5f243189735fc4e49c4be4d22e7a
blob + 7599c74782932b66b186f9bb91980bd32cd5c663
--- lib/got_lib_privsep.h
+++ lib/got_lib_privsep.h
/* Structure for GOT_IMSG_COMMIT_PAINTING_REQUEST. */
struct got_imsg_commit_painting_request {
- uint8_t id[SHA1_DIGEST_LENGTH];
+ struct got_object_id id;
int idx;
int color;
} __attribute__((__packed__));
/* Structure for GOT_IMSG_TAG data. */
struct got_imsg_tag_object {
- uint8_t id[SHA1_DIGEST_LENGTH];
+ struct got_object_id id;
int obj_type;
size_t tag_len;
size_t tagger_len;
/* Structure for GOT_IMSG_TRAVERSED_COMMITS */
struct got_imsg_traversed_commits {
size_t ncommits;
- /* Followed by ncommit IDs of SHA1_DIGEST_LENGTH each */
+ /* Followed by ncommit struct got_object_id */
} __attribute__((__packed__));
/* Structure for GOT_IMSG_ENUMERATED_COMMIT */
blob - a60e0339f8024823ed0d7e275d26f839dbbdb717
blob + 2ea804d6b50252ce13355a1a2e89eda51e14cd20
--- lib/privsep.c
+++ lib/privsep.c
return got_error_from_errno("malloc");
itag = (struct got_imsg_tag_object *)buf;
- memcpy(itag->id, tag->id.sha1, sizeof(itag->id));
+ memcpy(&itag->id, &tag->id, sizeof(itag->id));
itag->obj_type = tag->obj_type;
itag->tag_len = tag_len;
itag->tagger_len = tagger_len;
break;
}
- memcpy((*tag)->id.sha1, itag->id, SHA1_DIGEST_LENGTH);
+ memcpy(&(*tag)->id, &itag->id, sizeof(itag->id));
(*tag)->tag = strndup(imsg.data + len, itag->tag_len);
if ((*tag)->tag == NULL) {
const struct got_error *err = NULL;
struct imsg imsg;
struct got_imsg_traversed_commits *icommits;
+ struct got_object_id *ids;
size_t datalen;
int i, done = 0;
case GOT_IMSG_TRAVERSED_COMMITS:
icommits = imsg.data;
if (datalen != sizeof(*icommits) +
- icommits->ncommits * SHA1_DIGEST_LENGTH) {
+ icommits->ncommits * sizeof(*ids)) {
err = got_error(GOT_ERR_PRIVSEP_LEN);
break;
}
+ ids = imsg.data + sizeof(*icommits);
for (i = 0; i < icommits->ncommits; i++) {
struct got_object_qid *qid;
- uint8_t *sha1 = (uint8_t *)imsg.data +
- sizeof(*icommits) + i * SHA1_DIGEST_LENGTH;
+
err = got_object_qid_alloc_partial(&qid);
if (err)
break;
- memcpy(qid->id.sha1, sha1, SHA1_DIGEST_LENGTH);
+ memcpy(&qid->id, &ids[i], sizeof(ids[i]));
STAILQ_INSERT_TAIL(commit_ids, qid, entry);
/* The last commit may contain a change. */
struct got_imsg_commit_painting_request ireq;
memset(&ireq, 0, sizeof(ireq));
- memcpy(ireq.id, id->sha1, sizeof(ireq.id));
+ memcpy(&ireq.id, id, sizeof(ireq.id));
ireq.idx = idx;
ireq.color = color;
blob - 1cb98bf68ab578890b9806b248b38305052b2068
blob + f74a7539ea258b7873c4586808e67aaaa0867c59
--- libexec/got-read-pack/got-read-pack.c
+++ libexec/got-read-pack/got-read-pack.c
wbuf = imsg_create(ibuf, GOT_IMSG_TRAVERSED_COMMITS, 0, 0,
sizeof(struct got_imsg_traversed_commits) +
- ncommits * SHA1_DIGEST_LENGTH);
+ ncommits * sizeof(commit_ids[0]));
if (wbuf == NULL)
return got_error_from_errno("imsg_create TRAVERSED_COMMITS");
for (i = 0; i < ncommits; i++) {
struct got_object_id *id = &commit_ids[i];
- if (imsg_add(wbuf, id->sha1, SHA1_DIGEST_LENGTH) == -1) {
+ if (imsg_add(wbuf, id, sizeof(*id)) == -1) {
return got_error_from_errno(
"imsg_add TRAVERSED_COMMITS");
}
}
if (sizeof(struct got_imsg_traversed_commits) +
- ncommits * SHA1_DIGEST_LENGTH >= max_datalen) {
+ ncommits * sizeof(commit_ids[0]) >= max_datalen) {
err = send_traversed_commits(commit_ids, ncommits,
ibuf);
if (err)
err = got_object_qid_alloc_partial(&qid);
if (err)
return err;
- memcpy(&qid->id.sha1, tree_id, SHA1_DIGEST_LENGTH);
+ memcpy(&qid->id, tree_id, sizeof(*tree_id));
qid->data = strdup(path);
if (qid->data == NULL) {
err = got_error_from_errno("strdup");
if (datalen != sizeof(ireq))
return got_error(GOT_ERR_PRIVSEP_LEN);
memcpy(&ireq, imsg->data, sizeof(ireq));
- memcpy(id.sha1, ireq.id, SHA1_DIGEST_LENGTH);
+ memcpy(&id, &ireq.id, sizeof(id));
err = queue_commit_id(&ids, &id, ireq.color);
if (err)