summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2019-07-23 14:45:48 +0200
committerPeter Stephenson <p.stephenson@samsung.com>2019-07-24 17:14:06 +0100
commitf9cd2187875b6f2ebdb9b9a787fac20b2aaf745b (patch)
treee5288dd6561ed41a74db7b664018031dd7ea1126 /Src
parenta4f3df89abe283c7ebd877768e3b52f807790586 (diff)
downloadzsh-f9cd2187875b6f2ebdb9b9a787fac20b2aaf745b.tar.gz
zsh-f9cd2187875b6f2ebdb9b9a787fac20b2aaf745b.tar.xz
zsh-f9cd2187875b6f2ebdb9b9a787fac20b2aaf745b.zip
44566: make sure Zle doesn't crash if history entry not found
Diffstat (limited to 'Src')
-rw-r--r--Src/Zle/zle_utils.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c
index 0277d4917..d549b885b 100644
--- a/Src/Zle/zle_utils.c
+++ b/Src/Zle/zle_utils.c
@@ -1607,7 +1607,12 @@ static int
 unapplychange(struct change *ch)
 {
     if(ch->hist != histline) {
-	zle_setline(quietgethist(ch->hist));
+	Histent he = quietgethist(ch->hist);
+	if(!he) {
+	    dputs(ERRMSG("quietgethist(ch->hist) returned NULL"));
+	    return 1;
+	}
+	zle_setline(he);
 	zlecs = ch->new_cs;
 	return 0;
     }
@@ -1647,7 +1652,12 @@ static int
 applychange(struct change *ch)
 {
     if(ch->hist != histline) {
-	zle_setline(quietgethist(ch->hist));
+	Histent he = quietgethist(ch->hist);
+	if(!he) {
+	    dputs(ERRMSG("quietgethist(ch->hist) returned NULL"));
+	    return 1;
+	}
+	zle_setline(he);
 	zlecs = ch->old_cs;
 	return 0;
     }