From owner-freebsd-net@FreeBSD.ORG Fri Dec 21 12:11:50 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 17587EC4; Fri, 21 Dec 2012 12:11:50 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f179.google.com (mail-ob0-f179.google.com [209.85.214.179]) by mx1.freebsd.org (Postfix) with ESMTP id 783718FC12; Fri, 21 Dec 2012 12:11:49 +0000 (UTC) Received: by mail-ob0-f179.google.com with SMTP id x4so4403923obh.24 for ; Fri, 21 Dec 2012 04:11:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc:content-type; bh=jutCFm/CLZ6VK+QmE+wY4FuMHf7p6UV7FyP8uKLXfxA=; b=ccLRRdbNU8ypyX6n5ncivVN83nCVdXtQ9nS/ymig51ijVPZJacmLiIGe2uE++uPyXe WYySDBBi4GsD1Egmf/tN2dELlxFZ9CFZhuIvqCBpyDsp7SAEbyBw0S9Mtkbx8kI4PNq/ JwfMO5lDfCvaEFveAxsfOwPDVs2sAqVmKzxqZZraKY416Jx4+llGO25ke1UF5D9iUcnD ZnLGSXTABlkSHRaZoNKsnBKiJUm+w5Y5S3eA85q3x8YLyfsYVsLo4Xn7zUolwmpOGc0T l8AZ6tWc1dM6t2BabC3U7tVRobWcqAG2h0kw9UlHJrZ0YnjhIYyfP2n/ec3xLysu/puk HBig== MIME-Version: 1.0 Received: by 10.60.0.165 with SMTP id 5mr10985542oef.128.1356091908507; Fri, 21 Dec 2012 04:11:48 -0800 (PST) Received: by 10.76.143.33 with HTTP; Fri, 21 Dec 2012 04:11:48 -0800 (PST) Date: Fri, 21 Dec 2012 04:11:48 -0800 Message-ID: Subject: Broken error handling with AF_* and socket(2) [was Re: svn commit: r243965 - in head/sys: kern sys] From: Garrett Cooper To: Kevin Lo Content-Type: multipart/mixed; boundary=e89a8ff2535c7d472104d15bc0b0 Cc: src-committers@freebsd.org, freebsd-net@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Rick Macklem X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 12:11:50 -0000 --e89a8ff2535c7d472104d15bc0b0 Content-Type: text/plain; charset=ISO-8859-1 On Thu, Dec 6, 2012 at 6:22 PM, Kevin Lo wrote: > Author: kevlo > Date: Fri Dec 7 02:22:48 2012 > New Revision: 243965 > URL: http://svnweb.freebsd.org/changeset/base/243965 > > Log: > - according to POSIX, make socket(2) return EAFNOSUPPORT rather than > EPROTONOSUPPORT if the address family is not supported. > - introduce pffinddomain() to find a domain by family and use it as > appropriate. > > Reviewed by: glebius This commit broke netgraph (and potentially more things). I fixed netgraph locally like so: $ git diff lib/libnetgraph/ diff --git a/lib/libnetgraph/sock.c b/lib/libnetgraph/sock.c index fca3900..5f9f563 100644 --- a/lib/libnetgraph/sock.c +++ b/lib/libnetgraph/sock.c @@ -71,10 +71,10 @@ NgMkSockNode(const char *name, int *csp, int *dsp) name = NULL; /* Create control socket; this also creates the netgraph node. - If we get an EPROTONOSUPPORT then the socket node type is + If we get an EAFNOSUPPORT then the socket node type is not loaded, so load it and try again. */ if ((cs = socket(AF_NETGRAPH, SOCK_DGRAM, NG_CONTROL)) < 0) { - if (errno == EPROTONOSUPPORT) { + if (errno == EAFNOSUPPORT) { if (kldload(NG_SOCKET_KLD) < 0) { errnosv = errno; if (_gNgDebugLevel >= 1) Reproing the issue was trivial using the ether.bridge example script setup with appropriate interfaces. I have the patch with the netgraph fix attached, along with other potential fixes that needs to be more properly tested. Thanks, -Garrett --e89a8ff2535c7d472104d15bc0b0 Content-Type: application/octet-stream; name="0001-Fix-socket-calls-on-error-post-r243965.patch" Content-Disposition: attachment; filename="0001-Fix-socket-calls-on-error-post-r243965.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_haza2zk10 RnJvbSBjYzZmNzRiMmIyMTlkMjgzZjM0NWViMzE5NjY5NDE0NWMzM2EzODVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHYXJyZXR0IENvb3BlciA8eWFuZWdvbWlAZ21haWwuY29tPgpE YXRlOiBGcmksIDIxIERlYyAyMDEyIDA0OjEwOjA3IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gRml4 IHNvY2tldCBjYWxscyBvbiBlcnJvciBwb3N0LXIyNDM5NjUKClNpZ25lZC1vZmYtYnk6IEdhcnJl dHQgQ29vcGVyIDx5YW5lZ29taUBnbWFpbC5jb20+Ci0tLQogYmluL2RhdGUvbmV0ZGF0ZS5jICAg ICAgIHwgMiArLQogbGliL2xpYm5ldGdyYXBoL3NvY2suYyAgIHwgNCArKy0tCiBzYmluL2hhc3Rk L3BhcnNlLnkgICAgICAgfCAyICstCiBzYmluL2lmY29uZmlnL2FmX25kNi5jICAgfCAyICstCiBz YmluL2lmY29uZmlnL2lmY29uZmlnLmMgfCAyICstCiB1c3Iuc2Jpbi9tdGVzdC9tdGVzdC5jICAg fCA0ICsrLS0KIHVzci5zYmluL25mc2QvbmZzZC5jICAgICB8IDIgKy0KIDcgZmlsZXMgY2hhbmdl ZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Jpbi9kYXRl L25ldGRhdGUuYyBiL2Jpbi9kYXRlL25ldGRhdGUuYwppbmRleCBiMDg1YmU0Li5lNTA2ZTZkIDEw MDY0NAotLS0gYS9iaW4vZGF0ZS9uZXRkYXRlLmMKKysrIGIvYmluL2RhdGUvbmV0ZGF0ZS5jCkBA IC04NSw3ICs4NSw3IEBAIG5ldHNldHRpbWUodGltZV90IHR2YWwpCiAJZGVzdC5zaW5fYWRkci5z X2FkZHIgPSBodG9ubCgodV9sb25nKUlOQUREUl9BTlkpOwogCXMgPSBzb2NrZXQoQUZfSU5FVCwg U09DS19ER1JBTSwgMCk7CiAJaWYgKHMgPCAwKSB7Ci0JCWlmIChlcnJubyAhPSBFUFJPVE9OT1NV UFBPUlQpCisJCWlmIChlcnJubyAhPSBFQUZOT1NVUFBPUlQpCiAJCQl3YXJuKCJ0aW1lZCIpOwog CQlyZXR1cm4gKHJldHZhbCA9IDIpOwogCX0KZGlmZiAtLWdpdCBhL2xpYi9saWJuZXRncmFwaC9z b2NrLmMgYi9saWIvbGlibmV0Z3JhcGgvc29jay5jCmluZGV4IGZjYTM5MDAuLjVmOWY1NjMgMTAw NjQ0Ci0tLSBhL2xpYi9saWJuZXRncmFwaC9zb2NrLmMKKysrIGIvbGliL2xpYm5ldGdyYXBoL3Nv Y2suYwpAQCAtNzEsMTAgKzcxLDEwIEBAIE5nTWtTb2NrTm9kZShjb25zdCBjaGFyICpuYW1lLCBp bnQgKmNzcCwgaW50ICpkc3ApCiAJCW5hbWUgPSBOVUxMOwogCiAJLyogQ3JlYXRlIGNvbnRyb2wg c29ja2V0OyB0aGlzIGFsc28gY3JlYXRlcyB0aGUgbmV0Z3JhcGggbm9kZS4KLQkgICBJZiB3ZSBn ZXQgYW4gRVBST1RPTk9TVVBQT1JUIHRoZW4gdGhlIHNvY2tldCBub2RlIHR5cGUgaXMKKwkgICBJ ZiB3ZSBnZXQgYW4gRUFGTk9TVVBQT1JUIHRoZW4gdGhlIHNvY2tldCBub2RlIHR5cGUgaXMKIAkg ICBub3QgbG9hZGVkLCBzbyBsb2FkIGl0IGFuZCB0cnkgYWdhaW4uICovCiAJaWYgKChjcyA9IHNv Y2tldChBRl9ORVRHUkFQSCwgU09DS19ER1JBTSwgTkdfQ09OVFJPTCkpIDwgMCkgewotCQlpZiAo ZXJybm8gPT0gRVBST1RPTk9TVVBQT1JUKSB7CisJCWlmIChlcnJubyA9PSBFQUZOT1NVUFBPUlQp IHsKIAkJCWlmIChrbGRsb2FkKE5HX1NPQ0tFVF9LTEQpIDwgMCkgewogCQkJCWVycm5vc3YgPSBl cnJubzsKIAkJCQlpZiAoX2dOZ0RlYnVnTGV2ZWwgPj0gMSkKZGlmZiAtLWdpdCBhL3NiaW4vaGFz dGQvcGFyc2UueSBiL3NiaW4vaGFzdGQvcGFyc2UueQppbmRleCBhMjBiNjFhLi4wNGVhN2FiIDEw MDY0NAotLS0gYS9zYmluL2hhc3RkL3BhcnNlLnkKKysrIGIvc2Jpbi9oYXN0ZC9wYXJzZS55CkBA IC03NjksNyArNzY5LDcgQEAgZmFtaWx5X3N1cHBvcnRlZChpbnQgZmFtaWx5KQogCWludCBzb2Nr OwogCiAJc29jayA9IHNvY2tldChmYW1pbHksIFNPQ0tfU1RSRUFNLCAwKTsKLQlpZiAoc29jayA9 PSAtMSAmJiBlcnJubyA9PSBFUFJPVE9OT1NVUFBPUlQpCisJaWYgKHNvY2sgPT0gLTEgJiYgZXJy bm8gPT0gRUFGTk9TVVBQT1JUKQogCQlyZXR1cm4gKGZhbHNlKTsKIAlpZiAoc29jayA+PSAwKQog CQkodm9pZCljbG9zZShzb2NrKTsKZGlmZiAtLWdpdCBhL3NiaW4vaWZjb25maWcvYWZfbmQ2LmMg Yi9zYmluL2lmY29uZmlnL2FmX25kNi5jCmluZGV4IDY1NGUyZDkuLjgwMDY1ZjYgMTAwNjQ0Ci0t LSBhL3NiaW4vaWZjb25maWcvYWZfbmQ2LmMKKysrIGIvc2Jpbi9pZmNvbmZpZy9hZl9uZDYuYwpA QCAtMTQ4LDcgKzE0OCw3IEBAIG5kNl9zdGF0dXMoaW50IHMpCiAJbWVtc2V0KCZuZCwgMCwgc2l6 ZW9mKG5kKSk7CiAJc3RybmNweShuZC5pZm5hbWUsIGlmci5pZnJfbmFtZSwgc2l6ZW9mKG5kLmlm bmFtZSkpOwogCWlmICgoczYgPSBzb2NrZXQoQUZfSU5FVDYsIFNPQ0tfREdSQU0sIDApKSA8IDAp IHsKLQkJaWYgKGVycm5vICE9IEVQUk9UT05PU1VQUE9SVCkKKwkJaWYgKGVycm5vICE9IEVBRk5P U1VQUE9SVCkKIAkJCXdhcm4oInNvY2tldChBRl9JTkVUNiwgU09DS19ER1JBTSkiKTsKIAkJcmV0 dXJuOwogCX0KZGlmZiAtLWdpdCBhL3NiaW4vaWZjb25maWcvaWZjb25maWcuYyBiL3NiaW4vaWZj b25maWcvaWZjb25maWcuYwppbmRleCA4NzBhY2RkLi45ODNlMjFmIDEwMDY0NAotLS0gYS9zYmlu L2lmY29uZmlnL2lmY29uZmlnLmMKKysrIGIvc2Jpbi9pZmNvbmZpZy9pZmNvbmZpZy5jCkBAIC01 MjAsNyArNTIwLDcgQEAgdG9wOgogCQlBRl9MT0NBTCA6IGFmcC0+YWZfYWY7CiAKIAlpZiAoKHMg PSBzb2NrZXQoaWZyLmlmcl9hZGRyLnNhX2ZhbWlseSwgU09DS19ER1JBTSwgMCkpIDwgMCAmJgot CSAgICAodWFmcCAhPSBOVUxMIHx8IGVycm5vICE9IEVQUk9UT05PU1VQUE9SVCB8fAorCSAgICAo dWFmcCAhPSBOVUxMIHx8IGVycm5vICE9IEVBRk5PU1VQUE9SVCB8fAogCSAgICAgKHMgPSBzb2Nr ZXQoQUZfTE9DQUwsIFNPQ0tfREdSQU0sIDApKSA8IDApKQogCQllcnIoMSwgInNvY2tldChmYW1p bHkgJXUsU09DS19ER1JBTSIsIGlmci5pZnJfYWRkci5zYV9mYW1pbHkpOwogCmRpZmYgLS1naXQg YS91c3Iuc2Jpbi9tdGVzdC9tdGVzdC5jIGIvdXNyLnNiaW4vbXRlc3QvbXRlc3QuYwppbmRleCA2 MGY3ZTA5Li5hMjhmYWI3IDEwMDY0NAotLS0gYS91c3Iuc2Jpbi9tdGVzdC9tdGVzdC5jCisrKyBi L3Vzci5zYmluL210ZXN0L210ZXN0LmMKQEAgLTIwNCwxMiArMjA0LDEyIEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCXM2ID0gLTE7CiAjaWZkZWYgSU5FVAogCXMgPSBzb2NrZXQoQUZf SU5FVCwgU09DS19ER1JBTSwgSVBQUk9UT19VRFApOwotCWlmIChzID09IC0xICYmIGVycm5vICE9 IEVQUk9UT05PU1VQUE9SVCkKKwlpZiAocyA9PSAtMSAmJiBlcnJubyAhPSBFQUZOT1NVUFBPUlQp CiAJCWVycigxLCAiY2FuJ3Qgb3BlbiBJUHY0IHNvY2tldCIpOwogI2VuZGlmCiAjaWZkZWYgSU5F VDYKIAlzNiA9IHNvY2tldChBRl9JTkVUNiwgU09DS19ER1JBTSwgSVBQUk9UT19VRFApOwotCWlm IChzNiA9PSAtMSAmJiBlcnJubyAhPSBFUFJPVE9OT1NVUFBPUlQpCisJaWYgKHM2ID09IC0xICYm IGVycm5vICE9IEVBRk5PU1VQUE9SVCkKIAkJZXJyKDEsICJjYW4ndCBvcGVuIElQdjYgc29ja2V0 Iik7CiAjZW5kaWYKIAlpZiAocyA9PSAtMSAmJiBzNiA9PSAtMSkKZGlmZiAtLWdpdCBhL3Vzci5z YmluL25mc2QvbmZzZC5jIGIvdXNyLnNiaW4vbmZzZC9uZnNkLmMKaW5kZXggNmEyZjc4NS4uMmZl ZjdmNSAxMDA2NDQKLS0tIGEvdXNyLnNiaW4vbmZzZC9uZnNkLmMKKysrIGIvdXNyLnNiaW4vbmZz ZC9uZnNkLmMKQEAgLTI2NCw3ICsyNjQsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAlpcDZmbGFnID0gMTsKIAlzID0gc29ja2V0KEFGX0lORVQ2LCBTT0NLX0RHUkFNLCBJUFBST1RP X1VEUCk7CiAJaWYgKHMgPT0gLTEpIHsKLQkJaWYgKGVycm5vICE9IEVQUk9UT05PU1VQUE9SVCkK KwkJaWYgKGVycm5vICE9IEVBRk5PU1VQUE9SVCkKIAkJCWVycigxLCAic29ja2V0Iik7CiAJCWlw NmZsYWcgPSAwOwogCX0gZWxzZSBpZiAoZ2V0bmV0Y29uZmlnZW50KCJ1ZHA2IikgPT0gTlVMTCB8 fAotLSAKMS44LjAKCg== --e89a8ff2535c7d472104d15bc0b0--