[BACK]Return to raw_ip.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netinet/raw_ip.c between version 1.146.2.5 and 1.146.2.6

version 1.146.2.5, 2016/05/29 08:44:38 version 1.146.2.6, 2016/10/05 20:56:09
Line 554  rip_bind(struct socket *so, struct socka
Line 554  rip_bind(struct socket *so, struct socka
         struct inpcb *inp = sotoinpcb(so);          struct inpcb *inp = sotoinpcb(so);
         struct sockaddr_in *addr = (struct sockaddr_in *)nam;          struct sockaddr_in *addr = (struct sockaddr_in *)nam;
         int error = 0;          int error = 0;
         int s;          int s, ss;
         struct ifaddr *ia;          struct ifaddr *ifa;
   
         KASSERT(solocked(so));          KASSERT(solocked(so));
         KASSERT(inp != NULL);          KASSERT(inp != NULL);
Line 573  rip_bind(struct socket *so, struct socka
Line 573  rip_bind(struct socket *so, struct socka
                 error = EAFNOSUPPORT;                  error = EAFNOSUPPORT;
                 goto release;                  goto release;
         }          }
         if ((ia = ifa_ifwithaddr(sintosa(addr))) == 0 &&          ss = pserialize_read_enter();
           if ((ifa = ifa_ifwithaddr(sintosa(addr))) == NULL &&
             !in_nullhost(addr->sin_addr))              !in_nullhost(addr->sin_addr))
         {          {
                   pserialize_read_exit(ss);
                 error = EADDRNOTAVAIL;                  error = EADDRNOTAVAIL;
                 goto release;                  goto release;
         }          }
         if (ia && ((struct in_ifaddr *)ia)->ia4_flags &          if (ifa && (ifatoia(ifa))->ia4_flags & IN6_IFF_DUPLICATED) {
                     (IN6_IFF_NOTREADY | IN_IFF_DETACHED))                  pserialize_read_exit(ss);
         {  
                 error = EADDRNOTAVAIL;                  error = EADDRNOTAVAIL;
                 goto release;                  goto release;
         }          }
           pserialize_read_exit(ss);
   
         inp->inp_laddr = addr->sin_addr;          inp->inp_laddr = addr->sin_addr;
   

Legend:
Removed from v.1.146.2.5  
changed lines
  Added in v.1.146.2.6

CVSweb <webmaster@jp.NetBSD.org>