summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2014-02-22 18:01:10 +0000
committernicm <nicm>2014-02-22 18:01:10 +0000
commit315d45a0eb596048f2513dab98e4bb47ec1852a4 (patch)
tree3147f055e9db3a95f6b0396865938054b70cdb0a
parentc7f3599ebca82fcd1c2a00de234f90ac1f5f0ede (diff)
Fix crash due to uninitialized lastwp member of layout_cell, reported by
Balazs Kezes.
-rw-r--r--layout.c1
-rw-r--r--window.c5
2 files changed, 4 insertions, 2 deletions
diff --git a/layout.c b/layout.c
index b91b86cd..1c76f986 100644
--- a/layout.c
+++ b/layout.c
@@ -53,6 +53,7 @@ layout_create_cell(struct layout_cell *lcparent)
lc->yoff = UINT_MAX;
lc->wp = NULL;
+ lc->lastwp = NULL;
return (lc);
}
diff --git a/window.c b/window.c
index 1e11cace..842a5c63 100644
--- a/window.c
+++ b/window.c
@@ -410,8 +410,9 @@ window_pane_active_set(struct window_pane *wp, struct window_pane *nextwp)
* Previously active pane, if any, must not be the same as the source
* pane.
*/
- if (nextwp->layout_cell->parent != NULL) {
- lastwp = nextwp->layout_cell->parent->lastwp;
+ lc = nextwp->layout_cell->parent;
+ if (lc != NULL && lc->lastwp != NULL) {
+ lastwp = lc->lastwp;
if (lastwp != wp && window_pane_visible(lastwp))
return (lastwp);
}