summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2015-11-28 13:20:35 -0500
committerAllan McRae <allan@archlinux.org>2015-11-29 08:12:44 +1000
commitdfa4dcb16d42a84a76ed22792f681190aaa60b31 (patch)
tree8422a75246d0047fb7cb4eb705cbf49ec705bb61
parent34bbe4cf7b8c70fda3475ee2e936db93c4fe427a (diff)
run_chroot: always clear script output buffer
If the script output does not end in a newline there could still be data in the buffer after the poll loop. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/util.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 5696a45a..7e8f85ed 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -681,6 +681,12 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *cmd, char *const argv[],
STOP_POLLING(parent2child);
}
}
+ /* process anything left in the input buffer */
+ if(ilen) {
+ /* buffer would have already been flushed if it had a newline */
+ strcpy(ibuf + ilen, "\n");
+ _alpm_chroot_process_output(handle, ibuf);
+ }
#undef STOP_POLLING