Bug 9563 - gok: Segmentation fault
Summary: gok: Segmentation fault
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gok (show other bugs)
Version: unstable
Hardware: all Linux
: P2 blocker
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-13 22:25 MSD by Damir Shayhutdinov
Modified: 2006-08-18 20:21 MSD (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Damir Shayhutdinov 2006-05-13 22:25:49 MSD
Собранный для x86_64 gok вылетает по SIGSEGV при старте.

Расследование показало, что причина таится здесь:
gok/gok_data.c

 243 gok_gconf_get_string (gconf_client, GOK_GCONF_DOCK_TYPE,
 244                               &a_gchar);
 245         m_eDockType = gok_data_dock_type_from_string (a_gchar);
 246         g_free (a_gchar);
Здесь в строчке 243 производится вызов функции и считается что она что-то
запишет в a_gchar. Но это не так, вызов завершается неудачей (возвращением
FALSE), в результате дальше происходит вызов g_free(a_gchar) с
неинициализированной переменной, что и приводит к сегфолту.

Беглый запуск в valgrind показал и другие неполадки в коде.

Их можно посмотреть здесь:
http://alt.pastebin.com/715605
Comment 1 Alexey Rusakov 2006-05-23 09:21:28 MSD
Битый линк?
Comment 2 Damir Shayhutdinov 2006-05-23 10:10:01 MSD
(In reply to comment #1)
> Битый линк?
Возможно. Где искать, куда копать? 
Однако сегфолт все равно фиксить надо.
Comment 3 Alexey Rusakov 2006-05-24 12:27:26 MSD
Сегфолт вечером исправлю.
Comment 4 Damir Shayhutdinov 2006-05-24 15:05:47 MSD
(In reply to comment #3)
> Сегфолт вечером исправлю.
там ниже еще подобный код вроде есть.
Comment 5 Alexey Rusakov 2006-05-26 09:14:51 MSD
(In reply to comment #2)
> (In reply to comment #1)
> > Битый линк?
> Возможно. Где искать, куда копать? 
Э-э, я про ссылку на pastebin.com.

> Однако сегфолт все равно фиксить надо.
Будет в ближайшей сборке, об остальных багах сообщайте отдельно.