aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/samterm/mesg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/samterm/mesg.c')
-rw-r--r--src/cmd/samterm/mesg.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/cmd/samterm/mesg.c b/src/cmd/samterm/mesg.c
index c332d7a8..0bffad3d 100644
--- a/src/cmd/samterm/mesg.c
+++ b/src/cmd/samterm/mesg.c
@@ -646,10 +646,17 @@ hsetsnarf(int nc)
if(n >= 0){
if(!s1)
n = 0;
- s1 = realloc(s1, n+1);
- if (!s1)
- panic("realloc");
- s1[n] = 0;
+ if(n > 65535){
+ s1 = strdup("<snarf too long>");
+ if (!s1)
+ panic("strdup");
+ n = strlen(s1);
+ }else{
+ s1 = realloc(s1, n+1);
+ if (!s1)
+ panic("realloc");
+ s1[n] = 0;
+ }
snarflen = n;
outTs(Tsetsnarf, n);
if(n>0 && write(hostfd[1], s1, n)!=n)