Description: Set default port of 0 when parsing addresses
 Default port should be zero when address parsing so other parts of the
 library can set the emphereal source port.
Author: Bill Fenner
Origin: https://sourceforge.net/p/net-snmp/code/ci/06a02b7c708c1ea2bf67e59c333001e8ce128dff
Bug: https://sourceforge.net/p/net-snmp/bugs/2978/
Reviewed-by: Craig Small <csmall@debian.org>
Last-Update: 2019-09-30
--- a/snmplib/transports/snmpUDPIPv4BaseDomain.c
+++ b/snmplib/transports/snmpUDPIPv4BaseDomain.c
@@ -317,7 +317,7 @@
     if (NULL != tspec->source) {
         struct sockaddr_in src_addr, *srcp = &src_addr;
         /** get sockaddr from source */
-        if (!netsnmp_sockaddr_in2(&src_addr, tspec->source, NULL))
+        if (!netsnmp_sockaddr_in2(&src_addr, tspec->source, ":0"))
             return NULL;
         return netsnmp_udpipv4base_transport_with_source(&addr, local, srcp);
      } else {
--- a/snmplib/transports/snmpUDPIPv6Domain.c
+++ b/snmplib/transports/snmpUDPIPv6Domain.c
@@ -383,7 +383,7 @@
     if (NULL != tspec->source) {
         struct sockaddr_in6 src_addr, *srcp = &src_addr;
         /** get sockaddr from source */
-        if (!netsnmp_sockaddr_in6_2(&src_addr, tspec->source, NULL))
+        if (!netsnmp_sockaddr_in6_2(&src_addr, tspec->source, ":0"))
             return NULL;
         return netsnmp_udp6_transport_with_source(&addr, local, srcp);
      } else {
@@ -464,7 +464,7 @@
                                               NETSNMP_DS_LIB_CLIENT_ADDR);
         if (client_socket) {
             struct sockaddr_in6 client_addr;
-            if(!netsnmp_sockaddr_in6_2(&client_addr, client_socket, NULL)) {
+            if(!netsnmp_sockaddr_in6_2(&client_addr, client_socket, ":0")) {
                 return netsnmp_udp6_transport_with_source(addr, local,
                                                           &client_addr);
             }
