[devel] [JT] scrollkeeper
Alexey Rusakov
=?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Вт Июн 26 13:20:51 MSD 2007
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);
>
> приводит к тому, что исходное значение path затирается и в path попадает
> только сам токен (иногда с начальным слешем, если по другой ветке). В
> результате реально каталог /var/lib/scrollkeeper не создается, производится
> повторное открытие несуществующего каталога (через opendir) без проверки,
> после чего работа с нулевым указателем рушит программу. Следовательно,
> удаляя каталог /var/lib/scrollkeeper в %post через вызов программы
> scrollkeeper-rebuilddb, мы рушим работу библиотеки scrollkeeper.so.0.
(Праздный) вопрос в другом: а раньше-то оно как работало? Это же ведь
просто новая сборка той же версии.
--
Alexey "Ktirf" Rusakov
GNOME Project
ALT Linux Team
Подробная информация о списке рассылки Devel