diff options
author | schmonz <schmonz@pkgsrc.org> | 2019-08-19 22:05:39 +0000 |
---|---|---|
committer | schmonz <schmonz@pkgsrc.org> | 2019-08-19 22:05:39 +0000 |
commit | 7e273cc71e30f6174a95080f61e1e6173abd575f (patch) | |
tree | 1427c05f8b4ed3af24dfade5facf880a435849a1 /net | |
parent | ba5c342468527b78ab463dd21ff0460c3d83a119 (diff) | |
download | pkgsrc-7e273cc71e30f6174a95080f61e1e6173abd575f.tar.gz |
Apply upstream patch to fix incorrect behavior in tcpserver and
tcpclient when an IPv4 address is given as the hostname.
Bump PKGREVISION.
Diffstat (limited to 'net')
-rw-r--r-- | net/ucspi-tcp6/Makefile | 3 | ||||
-rw-r--r-- | net/ucspi-tcp6/distinfo | 4 | ||||
-rw-r--r-- | net/ucspi-tcp6/patches/patch-src_tcpclient.c | 24 | ||||
-rw-r--r-- | net/ucspi-tcp6/patches/patch-src_tcpserver.c | 46 |
4 files changed, 75 insertions, 2 deletions
diff --git a/net/ucspi-tcp6/Makefile b/net/ucspi-tcp6/Makefile index c0cfe535ba3..92e3e4468f6 100644 --- a/net/ucspi-tcp6/Makefile +++ b/net/ucspi-tcp6/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.17 2019/08/03 10:43:27 schmonz Exp $ +# $NetBSD: Makefile,v 1.18 2019/08/19 22:05:39 schmonz Exp $ DISTNAME= ucspi-tcp6-1.10.7 +PKGREVISION= 1 CATEGORIES= net MASTER_SITES= https://www.fehcom.de/ipnet/ucspi-tcp6/ EXTRACT_SUFX= .tgz diff --git a/net/ucspi-tcp6/distinfo b/net/ucspi-tcp6/distinfo index 3d2acacdaef..a63bfd1ecf2 100644 --- a/net/ucspi-tcp6/distinfo +++ b/net/ucspi-tcp6/distinfo @@ -1,6 +1,8 @@ -$NetBSD: distinfo,v 1.13 2019/08/03 10:43:27 schmonz Exp $ +$NetBSD: distinfo,v 1.14 2019/08/19 22:05:39 schmonz Exp $ SHA1 (ucspi-tcp6-1.10.7.tgz) = 82d06361e8b69ca4a6df8106876c2d9041906d2a RMD160 (ucspi-tcp6-1.10.7.tgz) = 70fe5dd1e1aded55d3f1d58771eeef2fc32ceda5 SHA512 (ucspi-tcp6-1.10.7.tgz) = 3ceb78d2a761156f7c0ee2b9ad36f728bcb78cad588bcd5f29e305a26b25fd1fc424b970dd0abfe4769680b756cfc4f60b1c60204e0eacce43d5ccc5f90fb85d Size (ucspi-tcp6-1.10.7.tgz) = 51200 bytes +SHA1 (patch-src_tcpclient.c) = 12d4a7f4ae2b50b1c2357b1960306ad3296103da +SHA1 (patch-src_tcpserver.c) = 922089930e9c05e6b8aecc22c1912fc212bd7ab3 diff --git a/net/ucspi-tcp6/patches/patch-src_tcpclient.c b/net/ucspi-tcp6/patches/patch-src_tcpclient.c new file mode 100644 index 00000000000..c990931bb95 --- /dev/null +++ b/net/ucspi-tcp6/patches/patch-src_tcpclient.c @@ -0,0 +1,24 @@ +$NetBSD: patch-src_tcpclient.c,v 1.1 2019/08/19 22:05:39 schmonz Exp $ + +Apply upstream patch to fix incorrect behavior in tcpclient when an IPv4 +address is given as the hostname. + +--- src/tcpclient.c.orig 2019-07-19 17:32:34.000000000 +0000 ++++ src/tcpclient.c +@@ -133,12 +133,10 @@ int main(int argc,char **argv) + + if (!*++argv) usage(); + +- +- if (ipv4socket) { +- if (ip4_scan(hostname,ipremote)) { +- if (!stralloc_copyb(&addresses,(char *)V4mappedprefix,12)) nomem(); +- byte_copy(addresses.s + 12,4,ipremote); +- } ++ if (ip4_scan(hostname,ipremote + 12)) { ++ if (!stralloc_copys(&addresses,"")) nomem(); ++ byte_copy(addresses.s,12,V4mappedprefix); ++ byte_copy(addresses.s + 12,4,ipremote + 12); + } else if (ip6_scan(hostname,ipremote)) + if (!stralloc_copyb(&addresses,ipremote,16)) nomem(); + diff --git a/net/ucspi-tcp6/patches/patch-src_tcpserver.c b/net/ucspi-tcp6/patches/patch-src_tcpserver.c new file mode 100644 index 00000000000..ced6e4e73e1 --- /dev/null +++ b/net/ucspi-tcp6/patches/patch-src_tcpserver.c @@ -0,0 +1,46 @@ +$NetBSD: patch-src_tcpserver.c,v 1.1 2019/08/19 22:05:39 schmonz Exp $ + +Apply upstream patch to fix incorrect behavior in tcpserver when an IPv4 +address is given as the hostname. + +--- src/tcpserver.c.orig 2019-07-14 10:16:33.000000000 +0000 ++++ src/tcpserver.c +@@ -137,8 +137,9 @@ void doit(int t) + { + uint32 netif; + int j; +- +- ipv4socket = ip6_isv4mapped(remoteip); ++ ++ if (!ipv4socket) ++ ipv4socket = ip6_isv4mapped(remoteip); + + if (socket_local(t,localip,&localport,&netif) == -1) + logmsg(WHO,111,FATAL,"unable to get local address"); +@@ -392,10 +393,11 @@ int main(int argc,char **argv) + + /* Name qualification */ + +- if (ip4_scan(hostname,localip)) { ++ if (ip4_scan(hostname,localip + 12)) { + if (!stralloc_copys(&addresses,"")) drop_nomem(); + byte_copy(addresses.s,12,V4mappedprefix); +- byte_copy(addresses.s + 12,4,localip); ++ byte_copy(addresses.s + 12,4,localip + 12); ++ ipv4socket = 1; + } else if (ip6_scan(hostname,localip)) + if (!stralloc_copyb(&addresses,localip,16)) drop_nomem(); + +@@ -403,10 +405,9 @@ int main(int argc,char **argv) + if (!stralloc_copys(&tmp,hostname)) drop_nomem(); + if (!dns_ip6_qualify(&addresses,&fqdn,&tmp)) + logmsg(WHO,111,FATAL,B("temporarily unable to figure out IP address for: ",(char *)hostname)); +- if (addresses.len < 16) +- logmsg(WHO,111,FATAL,B("no IP address for: ",(char *)hostname)); + } +- byte_copy(localip,16,addresses.s); ++ if (addresses.len < 16) ++ logmsg(WHO,111,FATAL,B("no IP address for: ",(char *)hostname)); + + s = socket_tcp(); + if (s == -1) |