commit 36c7cfbb2a9b646bfb1658fca4e34bc63a46ec42 from: Stefan Sperling date: Fri Nov 04 12:46:30 2022 UTC fix crash in gotd if client gets disconnected on error; reported by Mikhail commit - 9f76ccc895126c4a0a81b1183342e0888850cdcc commit + 36c7cfbb2a9b646bfb1658fca4e34bc63a46ec42 blob - faaafb6f3ed653a3a12f8ac342ab54ce2f43d2c0 blob + 4c5e00e9a153fb839064f16e6527e23fab82e354 --- gotd/gotd.c +++ gotd/gotd.c @@ -1909,15 +1909,18 @@ gotd_dispatch(int fd, short event, void *arg) disconnect_on_error(client, err); else disconnect(client); - } else if (do_packfile_install) - err = install_pack(client, proc->chroot_path, &imsg); - else if (do_ref_updates) - err = begin_ref_updates(client, &imsg); - else if (do_ref_update) - err = update_ref(client, proc->chroot_path, &imsg); - - if (err) - log_warnx("uid %d: %s", client->euid, err->msg); + } else { + if (do_packfile_install) + err = install_pack(client, proc->chroot_path, + &imsg); + else if (do_ref_updates) + err = begin_ref_updates(client, &imsg); + else if (do_ref_update) + err = update_ref(client, proc->chroot_path, + &imsg); + if (err) + log_warnx("uid %d: %s", client->euid, err->msg); + } imsg_free(&imsg); } done: