JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
46 stars 11 forks source link

DrawAreaBase: Add null check to fix segfault #1223

Closed ma8ma closed 1 year ago

ma8ma commented 1 year ago

スレを更新したときに異常終了したためgdbで調べたところLAYOUT構造体のメンバーにアクセスしたときnullptrを参照していました。 そのためメンバーにアクセスする処理の前にnullチェックを追加して修正します。

gdb のバックトレース

Thread 1 "jdim" received signal SIGSEGV, Segmentation fault.
ARTICLE::DrawAreaBase::exec_draw_screen (this=0x55555cd359c0,
    y_redraw=0, height_redraw=723)
    at ../src/article/drawareabase.cpp:1820
1820                if( header->rect->y <= pos_y && header->next_header->rect->y >= pos_y )  break;
(gdb) p header
$1 = (ARTICLE::LAYOUT *) 0x55555d4969a8
(gdb) p header->rect
$2 = (ARTICLE::RECTANGLE *) 0x0