commit 7429ae85e5dff2953bced09c774ea43f501e8929 from: Stefan Sperling date: Wed May 18 07:43:45 2022 UTC rework logic in got_privsep_recv_tree() to avoid an ugly 'goto' no functional change commit - 4bcdc8959af14bcb2e50c7f303df6c055573bc7a commit + 7429ae85e5dff2953bced09c774ea43f501e8929 blob - b8e60e5a73e4d935fbc621706294df4e664a14d3 blob + 6618deade1bf2e3f682f10b87ba1c86ca75a1ecd --- lib/privsep.c +++ lib/privsep.c @@ -1566,7 +1566,7 @@ got_privsep_recv_tree(struct got_tree_object **tree, s int nentries = 0; *tree = NULL; -get_more: + err = read_imsg(ibuf); if (err) goto done; @@ -1580,9 +1580,18 @@ get_more: n = imsg_get(ibuf, &imsg); if (n == 0) { - if (*tree && (*tree)->nentries != nentries) - goto get_more; - break; + if ((*tree)) { + if (nentries < (*tree)->nentries) { + err = read_imsg(ibuf); + if (err) + break; + continue; + } else + break; + } else { + err = got_error(GOT_ERR_PRIVSEP_MSG); + break; + } } if (imsg.hdr.len < IMSG_HEADER_SIZE + min_datalen) {