From owner-svn-src-head@freebsd.org Mon Jun 11 16:54:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06182101ABD9; Mon, 11 Jun 2018 16:54:39 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-pg0-x22b.google.com (mail-pg0-x22b.google.com [IPv6:2607:f8b0:400e:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 76CDC701A3; Mon, 11 Jun 2018 16:54:38 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-pg0-x22b.google.com with SMTP id l65-v6so10032140pgl.8; Mon, 11 Jun 2018 09:54:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=sMBoOxIp8IpAB7LoekLLZYCTpdYAt5u5bSzYgwvonPg=; b=ERwhjg8G8evIRQWAXP0rwZ7wRy4F1ScWbcxdn3q8p4bZHqc97WpmQIbb0uPz/JdQNu omkFNELzX9/GQGidT5IXuNVD39A+skYMpU638V7ne0YnvYgRzOGy/V3zbCeP6y6Y7sG5 hi1HxEbHgI95qmcgjiPJwuvuuG+HEBhyEwgJGViBr4TVOpxgZ7mwUf4GwNFqOWdW7GBH akOI55xLu/RwhDOwRLimGE1aYU7OuwXjsKt4njQdVYAmPkUq2Kyt7cSjlC2TZAZv5fO5 /6DNHy+CXvl2uTcuaeZN2TzFEYVUfiOVA/ThlU/3xPX01R+TTWA3wyJe/xC8OD+IMYjX cS+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=sMBoOxIp8IpAB7LoekLLZYCTpdYAt5u5bSzYgwvonPg=; b=f1XdkAnQ8b/SCLxBjNGkodxJYW9102XTNsi94bBQL4IsjJIq/ey1NKnY/wKGzH7IZn vbqUVH8a21hOZOjrFaDk38sUSOXW5wClPC2SSZylmO1JQ3S25deU45vrlL0CA7J68kMv oEjpHJFO0fIT57ZmwbH4nE11EqbXBfbpVntTl+kIX5x0h5aX6v1U/eF6BTIAWaw60+Jj pvs9XCNm3XI2hwoYzA1dpHSxlCcmBNR0t58wE1hH0nHzMsDdbGXRq5oJ1pDZY/BTfp4W 5acmfH5uf2F20HL2mgqSjXmlZWrZZIxm97u7/1y1IebgxFnEzAw5Q4Jpu/K3OS9Z/8NT 5gOw== X-Gm-Message-State: APt69E1FqwadN03ZmKY8umXIN0vJdNQapCTPNTdbMDspMwSFEGVQdoH6 3Kzrs21z3nTr8Y1hXM7f6J34Op6n X-Google-Smtp-Source: ADUXVKIoZdb9YJlwJ+wRLUxBMTPrcG2HsbezPjCZZSPrZF6Tf/bdnIpppB5qWAKmY7y+OyOXm0gZTg== X-Received: by 2002:a62:c0cb:: with SMTP id g72-v6mr18355432pfk.226.1528736077250; Mon, 11 Jun 2018 09:54:37 -0700 (PDT) Received: from raichu (toroon0560w-lp140-02-70-49-169-156.dsl.bell.ca. [70.49.169.156]) by smtp.gmail.com with ESMTPSA id o77-v6sm83474796pfj.0.2018.06.11.09.54.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Jun 2018 09:54:36 -0700 (PDT) Sender: Mark Johnston Date: Mon, 11 Jun 2018 12:54:33 -0400 From: Mark Johnston To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r334960 - head/sys/kern Message-ID: <20180611165433.GD55005@raichu> References: <201806111631.w5BGVh2M051386@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201806111631.w5BGVh2M051386@repo.freebsd.org> User-Agent: Mutt/1.10.0 (2018-05-17) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2018 16:54:39 -0000 On Mon, Jun 11, 2018 at 04:31:43PM +0000, Matt Macy wrote: > Author: mmacy > Date: Mon Jun 11 16:31:42 2018 > New Revision: 334960 > URL: https://svnweb.freebsd.org/changeset/base/334960 > > Log: > soreceive_stream: correctly handle edge cases > > - non NULL controlp is not an error, returning EINVAL > would cause X forwarding to fail > > - MSG_PEEK and MSG_WAITALL are fairly exceptional, but we still > want to handle them - punt to soreceive_generic > > Modified: > head/sys/kern/uipc_socket.c > > Modified: head/sys/kern/uipc_socket.c > ============================================================================== > --- head/sys/kern/uipc_socket.c Mon Jun 11 16:27:09 2018 (r334959) > +++ head/sys/kern/uipc_socket.c Mon Jun 11 16:31:42 2018 (r334960) > @@ -2162,7 +2162,6 @@ release: > > /* > * Optimized version of soreceive() for stream (TCP) sockets. > - * XXXAO: (MSG_WAITALL | MSG_PEEK) isn't properly handled. > */ > int > soreceive_stream(struct socket *so, struct sockaddr **psa, struct uio *uio, > @@ -2177,12 +2176,14 @@ soreceive_stream(struct socket *so, struct sockaddr ** > return (EINVAL); > if (psa != NULL) > *psa = NULL; > - if (controlp != NULL) > - return (EINVAL); > if (flagsp != NULL) > flags = *flagsp &~ MSG_EOR; > else > flags = 0; > + if (flags & (MSG_PEEK|MSG_WAITALL)) > + return (soreceive_generic(so, psa, uio, mp0, controlp, flagsp)); > + if (controlp != NULL) > + *controlp = NULL; Now soreceive_stream() contains dead code to handle MSG_WAITALL, and a bunch of always-true checks for both flags. Changes to this code should be reviewed.