chiark / gitweb /
regress: fuzzraw: work on fixing Paddr
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Nov 2016 21:46:24 +0000 (21:46 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 11 Jun 2020 15:13:02 +0000 (16:13 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
regress/hfuzzraw.c.m4
regress/hplayback.c.m4

index 1b8d019b551c8100404a9eb20f64244b15ceb085..0a23de69dac948ab047949de87b270d30f552eda 100644 (file)
@@ -145,6 +145,7 @@ static void Paddr(struct sockaddr *addr, int *lenr) {
 
   P_READ(l);
   if (l<0 || l>=sizeof(buf)-1) Pformat("bad addr len");
+  P_read(buf,l,"addrtext");
   buf[l]= 0;
   P_READ(port);
   r= adns_text2addr(buf,port, adns_qf_addrlit_scope_numeric, addr, &sl);
index 695b9a23ad48cba92177154fcfaf5d8152460d00..dc7080f386b98b37c26921dd3f167a27fee9a9fa 100644 (file)
@@ -291,6 +291,14 @@ static void Paddr(struct sockaddr *addr, int *lenr) {
   if (*ep && *ep != ' ') Psyntax("invalid port (bad syntax)");
   if (ul >= 65536) Psyntax("port too large");
 
+  if (Tfuzzrawfile) {
+    int tl = strlen(p);
+    FR_WRITE(tl);
+    FR_write(p,tl);
+    int port_int = ul;
+    FR_WRITE(port_int);
+  }
+
   a.len= sizeof(a.addr);
   err= adns_text2addr(p, (int)ul, 0, &a.addr.sa,&a.len);
   if (err) Psyntax("invalid address");