ksh/ksh93-keytrap-overflow.dif

20 lines
397 B
Plaintext
Raw Normal View History

--- 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);