Print this page
4838 Fix for 4596 has some inverted booleans
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>

@@ -2731,11 +2731,11 @@
                 if (v4mapped)
                         ixa->ixa_flags |= IXAF_IS_IPV4;
                 else
                         ixa->ixa_flags &= ~IXAF_IS_IPV4;
                 if (srcid != 0 && IN6_IS_ADDR_UNSPECIFIED(&v6src)) {
-                        if (ip_srcid_find_id(srcid, &v6src, IPCL_ZONEID(connp),
+                        if (!ip_srcid_find_id(srcid, &v6src, IPCL_ZONEID(connp),
                             v4mapped, connp->conn_netstack)) {
                                 /* Mismatch - v4mapped/v6 specified by srcid. */
                                 mutex_exit(&connp->conn_lock);
                                 error = EADDRNOTAVAIL;
                                 goto failed;    /* Does freemsg() and mib. */

@@ -3752,11 +3752,11 @@
                 if (v4mapped)
                         ixa->ixa_flags |= IXAF_IS_IPV4;
                 else
                         ixa->ixa_flags &= ~IXAF_IS_IPV4;
                 if (srcid != 0 && IN6_IS_ADDR_UNSPECIFIED(&v6src)) {
-                        if (ip_srcid_find_id(srcid, &v6src, IPCL_ZONEID(connp),
+                        if (!ip_srcid_find_id(srcid, &v6src, IPCL_ZONEID(connp),
                             v4mapped, connp->conn_netstack)) {
                                 /* Mismatched v4mapped/v6 specified by srcid. */
                                 mutex_exit(&connp->conn_lock);
                                 error = EADDRNOTAVAIL;
                                 goto ud_error;

@@ -5569,11 +5569,11 @@
                 v6dst = sin6->sin6_addr;
                 dstport = sin6->sin6_port;
                 srcid = sin6->__sin6_src_id;
                 v4mapped = IN6_IS_ADDR_V4MAPPED(&v6dst);
                 if (srcid != 0 && IN6_IS_ADDR_UNSPECIFIED(&v6src)) {
-                        if (ip_srcid_find_id(srcid, &v6src, IPCL_ZONEID(connp),
+                        if (!ip_srcid_find_id(srcid, &v6src, IPCL_ZONEID(connp),
                             v4mapped, connp->conn_netstack)) {
                                 /* Mismatch v4mapped/v6 specified by srcid. */
                                 return (EADDRNOTAVAIL);
                         }
                 }