URI: 
       tMake sure snarf is <64kB, since the wire count is only 16 bits. - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit efc2b0c99e1a4f9d2be9e72785d566df903c66fb
   DIR parent dc9d0ffc7558dacde0df81ff3b278fa6f356f46f
  HTML Author: rsc <devnull@localhost>
       Date:   Tue,  2 Mar 2004 20:02:13 +0000
       
       Make sure snarf is <64kB, since the wire count
       is only 16 bits.
       
       Diffstat:
         M src/cmd/samterm/mesg.c              |      15 +++++++++++----
       
       1 file changed, 11 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/src/cmd/samterm/mesg.c b/src/cmd/samterm/mesg.c
       t@@ -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)