Re: lug-bg: system() problem
- Subject: Re: lug-bg: system() problem
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Wed, 27 Oct 2004 14:59:27 +0300
On Wed, Oct 27, 2004 at 10:58:56AM +0300, Dimitar Dimitrov wrote:
> Peter Pentchev wrote:
>
> >ОК, като за бързо решение става, но все пак имай предвид, че с онзи
> >буфер char command[50] НАИСТИНА си създаваш проблем - "/bin/echo " е
> >дълго 10 символа, " | /usr/bin/smbclient -M " е дълго още 25, така че за
> >името на машината и съобщението си оставящ общо 50 - (1 + 25 + 10) = 14
> >символа... ти наистина ли си сигурен, че секретарката винаги ще пише
> >толкова кратки съобщения? :) А ако тя опита да напише по-дълго, ще
> >имаме типичен пример за buffer overflow exploit, макар и неволен, и тя
> >дори може и да не разбере, че съобщението не е било изпратено :)
>
> Да вярно решението със спреинтф и сизеоф е много по-добро. Иначе си е
> пулен буффер оверфлоу.
snprintf (не sprintf) и sizeof също няма да те спасят от това, че в 50
символа не можеш да събереш много голямо съобщение... все пак може да
увеличиш малко command[], а ако искаш да избегнеш всякакви такива
проблеми с размера (в случаи, когато размерът наистина има значение ;),
ползвай unquote направо от PHP-то :)
Поздрави,
Петър
--
G'luck,
Peter
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
If the meanings of 'true' and 'false' were switched, then this sentence wouldn't be false.
Attachment:
pgpfslkHuMKDq.pgp
Description: PGP signature
|