[sisyphus] liblensfun

Dmitry V. Levin ldv на altlinux.org
Ср Авг 19 03:18:14 MSD 2009


On Tue, Aug 18, 2009 at 02:39:24AM +0400, Dmitry V. Levin wrote:
> On Thu, Aug 13, 2009 at 07:04:39PM +0300, Kirill A. Shutemov wrote:
> > 2009/8/13 Victor Forsyuk <force на altlinux.org>:
> [...]
> > > Я вот сижу и думаю (нет, это не по поводу этого кода), если даже с полностью
> > > выключенной оптимизацией компилятор (gcc 4.4) создает код, отказывающийся
> > > работать, тогда как скомпилированный gcc 4.3 работает - стоит разбираться с
> > > кодом или это в любом случае регрессия компилятора?
> > 
> > Зависит от.
> > 
> > > Кому-то интересно будет посмотреть?
> > 
> > Давай. Только не два мегабайта кода. Локализуй до 50-100 строк, не больше.
> 
> 792	    for (i = 0; ; i++)
> 793	    {
> 794	        const char *model_name;
> 795	        lfTCAModel model = LF_TCA_MODEL_NONE + i;
> 796	        model_name = lf_get_tca_model_desc (model, NULL, NULL);
> 797	        if (!model_name)
> 798	            break;
> 799	        gtk_combo_box_append_text (GTK_COMBO_BOX (data->LensTCAModel), model_name);
> 800	        if (model == CFG->lens_tca.Model)
> 801	            active_index = i;
> 802	    }
> 
> При выполнении ufraw_lens_ui.c:798 происходит stack corruption.
> Вызов lf_get_tca_model_desc ведёт в странно собирающуюся cpp'шную библиотеку
> liblensfun, про использование которой в ufraw пишут забавные вещи:
> http://ufraw.sourceforge.net/lensfun.html

Попробовал свежий компилятор и посмотрел немного внимательнее.
То, что я сперва принял за stack corruption, таковым не является, но вот
внутри lfLens::GetTCAModelDesc действительно происходят странные вещи,
в результате которых вышепроцитированный цикл не прекращается.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090819/c6115cb6/attachment-0001.bin>


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