From owner-freebsd-current@FreeBSD.ORG Wed Apr 20 03:05:05 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B71D16A4CE; Wed, 20 Apr 2005 03:05:05 +0000 (GMT) Received: from sasami.jurai.net (sasami.jurai.net [69.17.104.113]) by mx1.FreeBSD.org (Postfix) with ESMTP id AD2CE43D1D; Wed, 20 Apr 2005 03:05:04 +0000 (GMT) (envelope-from mdodd@FreeBSD.ORG) Received: from sasami.jurai.net (winter@sasami.jurai.net [69.17.104.113]) by sasami.jurai.net (8.13.1/8.13.1) with ESMTP id j3K351A7021804; Tue, 19 Apr 2005 23:05:03 -0400 (EDT) (envelope-from mdodd@FreeBSD.ORG) Date: Tue, 19 Apr 2005 23:05:01 -0400 (EDT) From: "Matthew N. Dodd" X-X-Sender: winter@sasami.jurai.net To: Jung-uk Kim In-Reply-To: <200504192011.57723.jkim@niksun.com> Message-ID: <20050419225811.A76920@sasami.jurai.net> References: <20050414164406.2bfbeff5@ale.varnet.bsd> <4261A7BE.3070606@freebsd.org><200504192011.57723.jkim@niksun.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.5.6 (sasami.jurai.net [69.17.104.113]); Tue, 19 Apr 2005 23:05:04 -0400 (EDT) cc: freebsd-current@FreeBSD.ORG cc: David Xu cc: freebsd-ports@FreeBSD.ORG Subject: Re: gnome can not shutdown X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2005 03:05:05 -0000 >>> #1 0x0000000803f4a823 in connect () from /usr/lib/libthr.so.1 >>> #2 0x000000080458d7b3 in esd_connect_unix () from >>> /usr/local/lib/libesd.so.2 >>> #3 0x000000080458dbeb in esd_open_sound () from >>> /usr/local/lib/libesd.so.2 #4 0x0000000800f13c82 in The problem starts in libesd. esd.c: int open_listen_socket(const char *hostname, int port ) ... socket_listen=socket(AF_UNIX, SOCK_STREAM, 0); ... { int n = 1; setsockopt(socket_listen, SOL_SOCKET, SO_REUSEADDR, &n, sizeof(n)); /* if it fails, so what */ } And continues through some header files... sys/socket.h: #define SO_REUSEADDR 0x0004 /* allow local address reuse */ sys/un.h: #define LOCAL_CONNWAIT 0x004 /* connects block until accepted */ And finally ends up in sys/kern/uipc_usrreq.c:uipc_ctloutput() where we fail to check the 'level' argument to getsockopt(). Fix committed etc. -- 10 40 80 C0 00 FF FF FF FF C0 00 00 00 00 10 AA AA 03 00 00 00 08 00