tparanoia about extension - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit f2466297885cfdd3424033139d5aa14065791b84
 (DIR) parent 1e22e8e41463896755b37d45bf76e14683e30f94
 (HTM) Author: rsc <devnull@localhost>
       Date:   Thu,  4 May 2006 19:10:11 +0000
       
       paranoia about extension
       
       Diffstat:
         M src/cmd/9pserve.c                   |       7 ++++++-
       
       1 file changed, 6 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/src/cmd/9pserve.c b/src/cmd/9pserve.c
       t@@ -10,7 +10,8 @@ enum
        {
                STACK = 32768,
                NHASH = 31,
       -        MAXMSG = 64        /* per connection */
       +        MAXMSG = 64,        /* per connection */
       +        MAXMSGSIZE = 4*1024*1024
        };
        
        typedef struct Hash Hash;
       t@@ -231,6 +232,8 @@ mainproc(void *v)
                        if(n != nn)
                                sysfatal("error writing Tversion: %r\n");
                        n = read9pmsg(0, vbuf, sizeof vbuf);
       +                if(n < 0)
       +                        sysfatal("read9pmsg failure"):
                        if(convM2S(vbuf, n, &f) != n)
                                sysfatal("convM2S failure");
                        if(f.msize < msize)
       t@@ -1220,6 +1223,8 @@ read9ppkt(Ioproc *io, int fd)
                if(n != 4)
                        return nil;
                n = GBIT32(buf);
       +        if(n > MAXMSGSIZE)
       +                return nil;
                pkt = emalloc(n);
                PBIT32(pkt, n);
                nn = ioreadn(io, fd, pkt+4, n-4);