From owner-svn-src-all@FreeBSD.ORG Sun Feb 13 00:14:14 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21B28106566C; Sun, 13 Feb 2011 00:14:14 +0000 (UTC) (envelope-from deischen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0EA258FC0C; Sun, 13 Feb 2011 00:14:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p1D0EDLX019628; Sun, 13 Feb 2011 00:14:13 GMT (envelope-from deischen@svn.freebsd.org) Received: (from deischen@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p1D0ED5Q019625; Sun, 13 Feb 2011 00:14:13 GMT (envelope-from deischen@svn.freebsd.org) Message-Id: <201102130014.p1D0ED5Q019625@svn.freebsd.org> From: Daniel Eischen Date: Sun, 13 Feb 2011 00:14:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r218627 - in head/sys: kern netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Feb 2011 00:14:14 -0000 Author: deischen Date: Sun Feb 13 00:14:13 2011 New Revision: 218627 URL: http://svn.freebsd.org/changeset/base/218627 Log: Allow the SO_SETFIB socket option to select the default (0) routing table. Reviewed by: julian Modified: head/sys/kern/uipc_socket.c head/sys/netinet/udp_usrreq.c Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Sat Feb 12 23:44:05 2011 (r218626) +++ head/sys/kern/uipc_socket.c Sun Feb 13 00:14:13 2011 (r218627) @@ -2449,15 +2449,16 @@ sosetopt(struct socket *so, struct socko case SO_SETFIB: error = sooptcopyin(sopt, &optval, sizeof optval, sizeof optval); - if (optval < 1 || optval > rt_numfibs) { + if (optval < 0 || optval > rt_numfibs) { error = EINVAL; goto bad; } - if ((so->so_proto->pr_domain->dom_family == PF_INET) || - (so->so_proto->pr_domain->dom_family == PF_ROUTE)) { + if (so->so_proto != NULL && + ((so->so_proto->pr_domain->dom_family == PF_INET) || + (so->so_proto->pr_domain->dom_family == PF_ROUTE))) { so->so_fibnum = optval; /* Note: ignore error */ - if (so->so_proto && so->so_proto->pr_ctloutput) + if (so->so_proto->pr_ctloutput) (*so->so_proto->pr_ctloutput)(so, sopt); } else { so->so_fibnum = 0; Modified: head/sys/netinet/udp_usrreq.c ============================================================================== --- head/sys/netinet/udp_usrreq.c Sat Feb 12 23:44:05 2011 (r218626) +++ head/sys/netinet/udp_usrreq.c Sun Feb 13 00:14:13 2011 (r218627) @@ -486,6 +486,10 @@ udp_input(struct mbuf *m, int off) INP_RUNLOCK(inp); continue; } + if (imo == NULL) { + INP_RUNLOCK(inp); + continue; + } bzero(&group, sizeof(struct sockaddr_in)); group.sin_len = sizeof(struct sockaddr_in); group.sin_family = AF_INET;