Ukousnute dva znaky z auth logu (vsftpd) - CASTECNE VYRESENO
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pátek Červenec 29 09:46:10 CEST 2005
On Thu, 28 Jul 2005, Vlada Macek wrote:
> V glibc existuje mj. moc pekna promenna char *__progname, kterou pouziva
> tamni volani syslog() a ktera je tamtez nastavovana takto:
[...]
> Vytahl jsem si z vsftpd cast kodu, ktera meni nazev procesu a dodal
> zmenu promenne __progname:
>
> extern char *__progname;
> __progname = argv[0];
>
> Bohuzel do logu se zapisuje porad ukousnuto. Je evidentni, ze na
> promennou __progname z glibc timto nedosahnu. [...]
Problem neni v tom, ze tu promennou nezmenite. Vy ji zmenite. Ale kdyz se
podivate do sysdeps/generic/syslog.c, tak uvidite, ze si tu adresu
schovava jeste do privatni promenne LogTag, na kterou uz nedosahnete.
To je asi celkove dost nestastne vymyslene a chtelo by to opravit
__init_misc(), syslog() a spol., nebo nejspis oboji.
Jedno takove ne moc koncepcni ale asi ucinne reseni by spocivalo v tom,
ze budete vsftpd volat tak, aby bylo argv[0] primo "vsftpd" a tedy se
pri setproctitle() nezmenilo (alternativne by bylo mozno upravit
setproctitle() tak, aby zachovaval obsah argv[0]).
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux