commit 8767bb940965a692a36958085832958a312923bc from: Stefan Sperling via: Thomas Adam date: Thu May 19 13:34:05 2022 UTC rework logic in got_privsep_recv_tree() to avoid an ugly 'goto' no functional change commit - bafaf650cf9ee98df6390dc7b731fcf9546fb714 commit + 8767bb940965a692a36958085832958a312923bc blob - 42f3f969ab74fe9847c174eb9571b9b832599bf9 blob + 70dc341711c8c61360f3c8d9af25137cd6b9b9fb --- lib/privsep.c +++ lib/privsep.c @@ -1565,7 +1565,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; @@ -1579,9 +1579,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) {