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