X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=test%2Fudp-preload.c;h=49457ad42af888c8018d9c342f2f139fc9ef96f8;hb=539f5d7682b0afcf4f79c048666ade37da387272;hp=94b399a1e7c1a0412a120b101975ff433cc7ad87;hpb=a6a2f8e7bbafeb2460cfeb3f01a5fd9fe3e28c78;p=secnet.git diff --git a/test/udp-preload.c b/test/udp-preload.c index 94b399a..49457ad 100644 --- a/test/udp-preload.c +++ b/test/udp-preload.c @@ -96,7 +96,7 @@ static fdinfo **table; static int tablesz; static fdinfo *lookup(int fd) { - if (fd>=tablesz) return 0; + if (fd<0 || fd>=tablesz) return 0; return table[fd]; } @@ -150,7 +150,10 @@ static int str2addrport(char *str, char *comma=strchr(str,','); if (!comma) { errno=ESRCH; return -1; } *comma++=0; - if (inet_pton(af,str,iav)) return -1; + int r=inet_pton(af,str,iav); +//fprintf(stderr,"inet_pton(%d,\"%s\",)=%d\n",af,str,r); + if (r<0) return -1; + if (r==0) { errno=ENOTTY; return -1; } char *ep; errno=0; @@ -203,7 +206,7 @@ WRAP(socket) { } WRAP(close) { - if (fd=0 && fd