From nobody Fri May 28 22:21:15 2021 X-Original-To: freebsd-net@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id B9DB9DBBE71 for ; Fri, 28 May 2021 22:21:18 +0000 (UTC) (envelope-from bakul@iitbombay.org) Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com [IPv6:2607:f8b0:4864:20::22e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FsK0G4gW5z4qwF for ; Fri, 28 May 2021 22:21:18 +0000 (UTC) (envelope-from bakul@iitbombay.org) Received: by mail-oi1-x22e.google.com with SMTP id t24so5742195oiw.3 for ; Fri, 28 May 2021 15:21:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iitbombay-org.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=EnewkOkI+6f+U3vxN/pRa+GETg5p2nKyF+zWOKDYRWI=; b=yM1I0pjBEB+tyK2SMLLA/oEWRLiqam9eJR8exANHH1FqEhfO8bR5ND0oL/mQGSAizq 4OP0sg4RtuTdp8UAlNl5RQTscZ41lAlawYTFJUTN2jyrGIgJxBlP9opGy7o/BqG2pKt5 TyJx7jZt2oK4EFRRyPiVLsTfPuvTQPUox2mo6h196GeJb40AknJ5Y2BEXrjF3sSSCAxw +WRCZAKQKZqUkUlZrf2bvimetskjA7l8cY2/2TgQrvBKLW8AQjVbMB/juJlpTl616cTt nzQLBTsM6E/5s5Ia5EVK9cmGbmbIvmUbd+JC4AaT6zgvGnSklq2HpLKnypa/qd1ujuit pGaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=EnewkOkI+6f+U3vxN/pRa+GETg5p2nKyF+zWOKDYRWI=; b=W6qCt9OP8qsUrRw9LbVYgOXtAMRejdrar0y2Skm3ogYK/eM1em4o2OyQPTNSPEa36T KcTYIBhIUNlOzGapdFFFUZUgBqieIBBDNidDSZS7/dZiJawLW2fHuoReAWCW3pJFQT3R fXCYT81D2Tl06mAcalTnL8kBUeu9p8LxHZrdW4pfk23moz7B4CfUosEUjVlpM5yawAmS K2J8Kw5/9eU8A0Zj/O4ge4HykTTK9BUyfWJpGf6PtYlOX94V6Q2V2NaCCxPlPtOjaXne BhawU+j/XPst8XFD8fNqKtL2b4P0h/nKg9iyRzyW9winRJI8m/ijn8aVsrw/3USr6/PQ 1hFw== X-Gm-Message-State: AOAM532zkRiLjtQfvsAuX0+cTF/3r5lHlmNu/UomAJtw8nHjEFMSs7Dx 5mwk73sY6J2i9zHe/KwpABBvsqGLHmbUSYWd X-Google-Smtp-Source: ABdhPJxm0qH+9fBatB81Zy6URf1aXWYi206ZX6GEkBD1UvuNRx944fU4fOhcimv2UA6WYtN2FFNNng== X-Received: by 2002:aca:bd42:: with SMTP id n63mr323358oif.73.1622240477420; Fri, 28 May 2021 15:21:17 -0700 (PDT) Received: from smtpclient.apple (107-215-223-229.lightspeed.sntcca.sbcglobal.net. [107.215.223.229]) by smtp.gmail.com with ESMTPSA id t22sm1459320otd.25.2021.05.28.15.21.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 May 2021 15:21:16 -0700 (PDT) Content-Type: text/plain; charset=us-ascii List-Id: Networking and TCP/IP with FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-net List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-net@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.80.0.2.43\)) Subject: Re: bind(2) fails on 13.0-STABLE when sin_family is 0 From: Bakul Shah In-Reply-To: Date: Fri, 28 May 2021 15:21:15 -0700 Cc: freebsd-net@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <9CF9F43D-CEB5-4856-AC1E-455DFE66DC69@iitbombay.org> References: To: Mark Johnston X-Mailer: Apple Mail (2.3654.80.0.2.43) X-Rspamd-Queue-Id: 4FsK0G4gW5z4qwF X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-ThisMailContainsUnwantedMimeParts: N On May 28, 2021, at 3:12 PM, Mark Johnston wrote: >=20 > On Fri, May 28, 2021 at 02:40:26PM -0700, Bakul Shah wrote: >> ttcp runs fine on 13.0-RELEASE but fails on -stable. >>=20 >> The culprit seems to be bind(2). Running ttcp under gdb: >>=20 >> $ gdb a.out >> Reading symbols from a.out... >> (gdb) b 295 >> Breakpoint 1 at 0x203127: file ttcp.c, line 295. >> (gdb) run -s -r >> Starting program: /usr/ports/benchmarks/ttcp/work/ttcp-1.12_2/a.out = -s -r >> ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp >> ttcp-r: socket >>=20 >> Breakpoint 1, main (argc=3D3, argv=3D0x7fffffffd9b0) at ttcp.c:295 >> 295 if (bind(fd, (struct sockaddr *) &sinme, = sizeof(sinme)) < 0) >> (gdb) p/x sinme >> $1 =3D {sin_len =3D 0x0, sin_family =3D 0x0, sin_port =3D 0x8913, = sin_addr =3D { >> s_addr =3D 0x0}, sin_zero =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, = 0x0}} >> (gdb) n >> 296 err("bind"); >> (gdb) p errno >> $2 =3D 47 >>=20 >>=20 >> $ errno 47 >> #define EAFNOSUPPORT 47 /* Address family not = supported by protocol family */ >>=20 >> Did something change post 13.0-RELEASE that requires specifying = sin_family? >> Thanks! >=20 > Yes, some changes were made recently to make sockaddr validation > stricter. Several other operating systems also have this requirement. > Linux seems to be a bit more relaxed in that AF_UNSPEC (0) is = permitted > if and only if the bind address is INADDR_ANY, which is the case here. >=20 > Since 2001 the benchmarks/ttcp port has carried a patch to specify > sin_family. Is there some reason it cannot be used here? I don't > object to re-allowing ttcp's unpatched behaviour if necessary. The patch was only for the transmit case. Making it unconditional fixed = it. I asked mainly because I was surprised and wanted to make sure this was = an intended change. Thanks for your response! -- Bakul=