eliminate segfault

This commit is contained in:
tg 2006-11-05 17:11:25 +00:00
parent 5e2e209d51
commit 260eaa9d51
1 changed files with 12 additions and 3 deletions

15
edit.c
View File

@ -5,7 +5,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.45 2006/11/05 16:53:34 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.46 2006/11/05 17:11:25 tg Exp $");
/* tty driver characters we are interested in */
typedef struct {
@ -1740,9 +1740,18 @@ x_delete(int nc, int push)
nw = 0;
cp = xcp;
for (i = 0; i < nc; ++i)
nw += x_size2(cp, &cp);
for (i = 0; i < nc; ++i) {
char *cp2;
int j;
j = x_size2(cp, &cp2);
if (cp2 > xep)
break;
cp = cp2;
nw += j;
}
nb = cp - xcp;
nc = i;
if (xmp != NULL && xmp > xcp) {
if (xcp + nb > xmp)