elfmz / far2l

Linux port of FAR v2
GNU General Public License v2.0
1.77k stars 173 forks source link

far2l sigaction #1785

Open icesvz opened 1 year ago

icesvz commented 1 year ago

for 1st time... never seen before. crash.log attached crash.log

🔥🔥🔥 far2l 2.5.1-beta x64 build for fedora 37 from https://copr.fedorainfracloud.org/coprs/polter/far2l/

elfmz commented 1 year ago

can you share also following binaries?: /usr/bin/far2l /usr/lib/far2l/Plugins/colorer/plug/colorer.far-plug-wide

icesvz commented 1 year ago

here: far-bins.zip

build log+flags for last build can be seen there; logs for actual build was deleted https://download.copr.fedorainfracloud.org/results/polter/far2l/fedora-37-x86_64/06153813-far2l/build.log.gz

elfmz commented 1 year ago

is it reproducible on some scenario?

icesvz commented 1 year ago

i cant reproduce but i will try to.

cycleg commented 1 year ago

Кажется, нашел причину на материале своего gvfspanel плагина. При попытке перейти на него в панели (change drive) Far падает с SIGSEGV (привет sigaction), конкретно в этом месте. ListData[Position]->ColorsPtr остается не инициализированным к этому моменту. Почему -- тут я пас :), но если добавить проверку типа

if (ListData[Position]->ColorsPtr == nullptr) {
  ColorAttr = FarColor[Pos];
} else {
  ColorAttr = ListData[Position]->ColorsPtr->Color[ColorType][Pos];

  if (!ColorAttr || !Opt.Highlight)
      ColorAttr = FarColor[Pos];
}

то дефект пропадает, правда, и панелька отображается не совсем корректно в плане раскраски (текущая строка не подсвечивается).

elfmz commented 1 year ago

Кажется, нашел причину на материале своего gvfspanel плагина.

Это другое (с), но попробуйте после последнего фикса.