[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