From 5b09499cacd3c1c95ab240d041e28cc954a5975d Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Fri, 24 Mar 2023 17:17:31 +0100 Subject: userdbctl: flush stdout before running the chain command Otherwise it's quite difficult to capture the entire output: $ userdbctl ssh-authorized-keys dropinuser --chain /bin/echo hello ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA//dxI2xLg4MgxIKKZv1nqwTEIlE/fdakii2Fb75pG+ foo@bar.tld ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMlaqG2rTMje5CQnfjXJKmoSpEVJ2gWtx4jBvsQbmee2XbU/Qdq5+SRisssR9zVuxgg5NA5fv08MgjwJQMm+csc= hello@world.tld hello $ userdbctl ssh-authorized-keys dropinuser --chain /bin/echo hello | tee hello --- src/userdb/userdbctl.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/userdb') diff --git a/src/userdb/userdbctl.c b/src/userdb/userdbctl.c index 86b8d383df..eab0c3af15 100644 --- a/src/userdb/userdbctl.c +++ b/src/userdb/userdbctl.c @@ -1038,6 +1038,7 @@ static int ssh_authorized_keys(int argc, char *argv[], void *userdata) { log_debug("Chain invoking: %s", s); } + fflush(stdout); execv(chain_invocation[0], chain_invocation); if (errno == ENOENT) /* Let's handle ENOENT gracefully */ log_warning_errno(errno, "Chain executable '%s' does not exist, ignoring chain invocation.", chain_invocation[0]); -- cgit v1.2.1