From patchwork Fri May 13 04:47:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soheil Hassas Yeganeh X-Patchwork-Id: 621837 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3r5cly55DZz9t5c for ; Fri, 13 May 2016 14:47:26 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=WFxUmbC0; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751818AbcEMErY (ORCPT ); Fri, 13 May 2016 00:47:24 -0400 Received: from mail-qg0-f65.google.com ([209.85.192.65]:35630 "EHLO mail-qg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751095AbcEMErX (ORCPT ); Fri, 13 May 2016 00:47:23 -0400 Received: by mail-qg0-f65.google.com with SMTP id b14so6422599qge.2 for ; Thu, 12 May 2016 21:47:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=HtYxRr1NLdieQ8hZcS2+6TQdmC/Tv0+dspLBl9r0RC8=; b=WFxUmbC0ZlJMCitphF2HuXvUOK8SDpCnAf+Rs/8NsLeWFc19tKU6cU4ypo0UPQ8AdE 2mO7yM3bBAkuVjT6xd5asKZpdAfmus9Ts8fgxFqSQJqVlcJBzS8RbUxhJS9sBlWSw3pf SEx6fAnkhwUV0NE0C+YCBcAJitulxEVDIAgfscQl/ishURgzbNwxPUYRNQNPjBmN6Xap FOih1eT46zm/tBmttVJG8DlWfnLKiIw9PrRtyfa96v/9OotxKUWNp4LXkGiTxSzI5zSX cE3fbqZFG1zb8FFViDAksfm9bI8gPl2utUId4nEvuMQSjYYde+U/80OgY9KQ6dVQIh6F faHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=HtYxRr1NLdieQ8hZcS2+6TQdmC/Tv0+dspLBl9r0RC8=; b=BTbDg2zvHk10vDPyet1CfjvHhaoeTGQd6t8XXGXG9N42gmumEO7V13ICsuWXVHQSCh 7QrYd4dkels11zZaKERxkeMdG43OPrPrIgtipkdIzrX6iPGgeZTdo7Gu4SmOikEgpXKC QKIf6QpUvKSR+s0yleaAIowP4irNJ05lym0h7mvHOMW1/M08Wl3+V/1ssnwdHfA8qqU4 H2gP7pT5pTha9dFwjxq89wawA5FMX+nlmWCzIL0xrhYdIt9XDor0YouUK0pAGcocbmTc UsGOxHdyfX21BRaYSqzX7RDSc7o0Q5GTIqE6JAdX6GMqwuTPROLm3IjFrTCf+YdprBzP r7xQ== X-Gm-Message-State: AOPr4FWtjI4bw+xJJJiha0bI7uxcrNmR02VdTJXn2Z6isfIkLNhwD75ya2mEOZ/fCgzqEg== X-Received: by 10.141.43.194 with SMTP id u185mr14144370qhe.75.1463114842532; Thu, 12 May 2016 21:47:22 -0700 (PDT) Received: from soheil.nyc.corp.google.com ([100.101.230.57]) by smtp.gmail.com with ESMTPSA id 23sm7626575qkd.8.2016.05.12.21.47.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 12 May 2016 21:47:21 -0700 (PDT) From: Soheil Hassas Yeganeh To: davem@davemloft.net, netdev@vger.kernel.org Cc: edumazet@google.com, maze@google.com, willemb@google.com, Soheil Hassas Yeganeh Subject: [PATCH net-next] sock: ignore TIMESTAMP, RXQ_OVFL, WIFI_STATUS in sock_cmsg_send Date: Fri, 13 May 2016 00:47:10 -0400 Message-Id: <1463114830-32751-1-git-send-email-soheil.kdev@gmail.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Soheil Hassas Yeganeh SO_TIMESTAMP(NS), RXQ_OVFL, and WIFI_STATUS can be returned as receive-side control messages from recvmsg(). Although invalid, some applications may reflect those receive-side control messages back to sendmsg(). Since socket-level control messages were being ignored in ipv4 and ipv6, such applications would not get an error. 24025c4 (ipv4: process socket-level control messages in IPv4) and ad1e46 (ipv6: process socket-level control messages in IPv6) add support for socket-level control messages in ipv4 and ipv6 on sendmsg(). This results in getting -EINVAL, if the application passes in a message with SO_WIFI_STATUS, SO_RXQ_OVFL, SO_TIMESTAMP and/or SO_TIMESTAMPNS that might have been received in recvmsg(). Ignore SO_WIFI_STATUS, SO_TIMESTAMP(NS), and SO_RXQ_OVFL when processing socket-level control messages in send-side to remain backward compatible. --- net/core/sock.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/core/sock.c b/net/core/sock.c index 08bf97e..1e0bcd0 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1938,6 +1938,12 @@ int __sock_cmsg_send(struct sock *sk, struct msghdr *msg, struct cmsghdr *cmsg, sockc->tsflags &= ~SOF_TIMESTAMPING_TX_RECORD_MASK; sockc->tsflags |= tsflags; break; + /* Ignore the following types on send to remain backward compatible. */ + case SO_RXQ_OVFL: /* Fall through */ + case SO_TIMESTAMP: /* Fall through */ + case SO_TIMESTAMPNS: /* Fall through */ + case SO_WIFI_STATUS: + break; default: return -EINVAL; }