stdout flush
Richard Kojedzinszky
krichy at tvnetwork.hu
Sun Sep 12 20:20:56 EST 2004
Dear all,
I compiled openssh-3.9p1 against uClibc on linux, and when I logged in to
a system using this openssh, the /etc/motd didn't appear. I have checked
everyhing, and made some debugging. As I have seen, session.c prepares the
environment, and invokes the user's login shell, but before the execv()
call, does not flush the stdout. And if I made it do to it, it began to
work. I dont know if it is the right solution, or I am doing something
wrong.
A little patch that puts that fflush in is attached.
Please send mail directly me, as I am not subscribed to this list.
Regards,
Kojedzinszky Richard
TvNetWork Rt.
E-mail: krichy at tvnetwork.hu
PGP: 0x24E79141
Fingerprint = 6847 ECFF EF58 0C09 18A5 16CF 270F 0C6F 24E7 9141
-------------- next part --------------
--- openssh-3.9p1/session.c.orig Wed Sep 1 16:36:39 2004
+++ openssh-3.9p1/session.c Wed Sep 1 16:50:16 2004
@@ -1521,6 +1521,11 @@
else
shell0 = shell;
+ /* flush all output streams to get
+ * everything written on the terminal
+ * like motd, and etc */
+ fflush(NULL);
+
/*
* If we have no command, execute the shell. In this case, the shell
* name to be passed in argv[0] is preceded by '-' to indicate that
More information about the openssh-unix-dev
mailing list