--- src/cmd/ksh93/edit/edit.c +++ src/cmd/ksh93/edit/edit.c 2007-09-16 23:57:45.000000000 +0200 @@ -1478,8 +1478,14 @@ nv_unset(ED_CHRNOD); else { - strncpy(inbuff,cp,bufsize); - insize = strlen(inbuff); + if (bufsize>0) + { + strncpy(inbuff,cp,bufsize); + inbuff[bufsize-1]='\0'; + insize = strlen(inbuff); + } + else + insize=0; } nv_unset(ED_TXTNOD); return(insize);