[devel] [JT] scrollkeeper

Alexander Bokovoy =?iso-8859-1?q?ab_=CE=C1_altlinux=2Eorg?=
Вт Июн 26 14:08:15 MSD 2007


Alexey Rusakov пишет:
> On Tue, 26 Jun 2007 12:32:04 +0400
> Epiphanov Sergei wrote:
> 
>> В сообщении от Monday 25 June 2007 20:50:46 Aleksey Novodvorsky написал(а):
>>>> Ах вот откуда появлялся этот несчастный /scrollkeeper. Жуть какая, и
>>>> ведь исходники не трогались между старой-старой и новой сборками. Ничего
>>>> не понимаю.
>>> Там с prefix ничего по дороге не случилось?
>> Нет, в create_database_directory есть вызов команды на создание 
>> каталога /var/lib/scrollkeeper (sk_mkdir_with_parents). Так вот, в данной 
>> функции есть разбор нужного пути по токенам с последующей сборкой из них 
>> частичных путей. Так вот, вызов вида:
>>
>> sprintf(path, "%s%s", path, token);
Такого рода операции имеют неопределенный результат в C (i += (i++) +
(i++) из их числа), если только path не объявлена как volatile, что для
строк бессмысленно.

Так что код этот изначально был хрупкий, его надо в любом случае
переписывать.
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/



Подробная информация о списке рассылки Devel