The following reply was made to PR bin/182463; it has been noted by GNATS. From: Wolfgang Jenkner <wjenk...@inode.at> To: bug-follo...@freebsd.org Cc: martin.birgme...@aon.at Subject: Re: bin/182463: vi(1): vi core dumps on exit with a specific vi.exrc [regression] Date: Sat, 07 Dec 2013 17:10:58 +0100
--=-=-= Content-Type: text/plain I can reproduce the bug on 10.0-BETA3 when setting MALLOC_CONF=junk:true in vi's environment. However, even with the default malloc options, vi crashes reliably when the terminal window where it runs is resized (which makes vi rather unusable with a dwm-style tiling window manager). Both crashes seem to be due to an oversight in commit 68ca13 in the upstream nvi2 repo https://github.com/lichray/nvi2 The (hopefully) attached patch fixes this. It can be applied with `patch -p1 <...' in /usr/src/contrib/nvi and vi can then be rebuilt from /usr/src/usr.bin/vi. Note that NetBSD, OpenBSD and skimo's nvi don't use SLIST, but DFly does and so has probably the same bug. I have Bcc'ed lichray in order not to expose his address here. --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Fix-SLIST-surgery.patch Content-Description: SLIST migration fix From 0facfe2d0586822291b18aa25433f76a19d70d2d Mon Sep 17 00:00:00 2001 From: Wolfgang Jenkner <wjenk...@inode.at> Date: Fri, 22 Nov 2013 16:44:45 +0100 Subject: [PATCH] Fix SLIST surgery. Mostly copied from seq_delete. --- cl/cl_term.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cl/cl_term.c b/cl/cl_term.c index 3d8cdb2..4761ee2 100644 --- a/cl/cl_term.c +++ b/cl/cl_term.c @@ -187,14 +187,18 @@ cl_term_init(SCR *sp) int cl_term_end(GS *gp) { - SEQ *qp, *nqp; + SEQ *qp, *nqp, *pre_qp = NULL; /* Delete screen specific mappings. */ SLIST_FOREACH_SAFE(qp, gp->seqq, q, nqp) if (F_ISSET(qp, SEQ_SCREEN)) { - SLIST_REMOVE_HEAD(gp->seqq, q); + if (qp == SLIST_FIRST(gp->seqq)) + SLIST_REMOVE_HEAD(gp->seqq, q); + else + SLIST_REMOVE_AFTER(pre_qp, q); (void)seq_free(qp); - } + } else + pre_qp = qp; return (0); } -- 1.8.4.3 --=-=-=-- _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"