d134745c4f
The bug triggers when _workspace_show calls tree_close_internal and old == old_focus. Ie, when the old workspace was empty and needs to be closed but then is accessed as output_push_sticky_windows's argument: Breakpoint 1, output_push_sticky_windows (to_focus=0x55555589c8a0) at ../../i3/src/output.c:102 102 con_move_to_workspace(current, visible_ws, true, false, current != to_focus->parent); (gdb) print con_exists(to_focus) $1 = false The access violation can also be prevented by checking if con_exists(old_focus) but it shouldn't be necessary: the old_focus container can only be killed when it is an empty workspace. With --enable-sanitizers this causes i3 to exit but with --disable-sanitizers the access violation doesn't reliably cause a crash and the con_move_to_workspace call continues with: (gdb) print current != to_focus->parent $2 = 1 Since current->type is CT_FLOATING_CON and to_focus->type is CT_WORKSPACE, in this specific case ignore_focus would always be true. So, in this case, passing NULL instead of old_focus to output_push_sticky_windows doesn't change the behaviour of i3. Fixes #3075. |
||
---|---|---|
.github | ||
AnyEvent-I3 | ||
contrib | ||
debian | ||
docs | ||
etc | ||
i3-config-wizard | ||
i3-dump-log | ||
i3-input | ||
i3-msg | ||
i3-nagbar | ||
i3bar | ||
include | ||
libi3 | ||
m4 | ||
man | ||
parser-specs | ||
share | ||
src | ||
testcases | ||
travis | ||
.clang-format | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
DEPENDS | ||
I3_VERSION | ||
LICENSE | ||
Makefile.am | ||
PACKAGE-MAINTAINER | ||
README.md | ||
RELEASE-NOTES-4.14 | ||
configure.ac | ||
generate-command-parser.pl | ||
i3-dmenu-desktop | ||
i3-migrate-config-to-v4 | ||
i3-save-tree | ||
i3-sensible-editor | ||
i3-sensible-pager | ||
i3-sensible-terminal | ||
logo.svg | ||
pseudo-doc.doxygen | ||
release.sh |
README.md
i3: A tiling window manager
i3 is a tiling window manager for X11.
For more information about i3, please see the project's website and online documentation.
For information about contributing to i3, please see CONTRIBUTING.md.