From patchwork Sat Jul 15 15:32:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Simmons X-Patchwork-Id: 107852 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp2348918qge; Sat, 15 Jul 2017 08:32:37 -0700 (PDT) X-Received: by 10.101.70.137 with SMTP id h9mr20679075pgr.50.1500132757797; Sat, 15 Jul 2017 08:32:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1500132757; cv=none; d=google.com; s=arc-20160816; b=FD6Fxe+b30zv4BM92TTa1S6FLiQB8m+/mrQGMeBENSiV9C1Rz95jynB6z+i99NWL+V eUd4rELG6jlQJ2zBIi1b5am/FiYY3UXGYvYMSOwheB1cw5qPkNu5b/1mO9PkkHAZ/QVA WZgL9h6l1z8bF/p2nVduMtdWleei1qMZ/S3dqtojKkK+RtDXaXd3hDgbtRl4eUDPZs6H z+yY9WbznYJc8KQJ3vROinFnpbCylE6Setf71I1dXt3uoVH2KS16ZD65ezoO2Edt6WQi cxg6C8EvwbN3Gv8Si4mX+miZysPbDdX4A8oGX/A8MVAU5E/NJ2cWwe/PHp+ywnLhk2Ga vpJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=IKWdyZRLiCMfm59EUyY7i4jQvabABD2vVY/v6B3Yryc=; b=kpmGf3sDWB8Q1vv/pLf4VznJiGnqikSGn+4RFwUwPgcYRmXHMJgIE4HYMRq/O9ELdA txprga8mN+7mnjrP6HCDHESW1rXBBamyd96lpdlmmLzm5BgKrZhGz3G0qSbf3zCLcGgS OS2baDakJyyfXTrrbnifBpVrqpcOrWum1i1JSColHgChxXnyBPOmFec/9tJLz5xa+C2C 6Z5QJarEk20qtrq1Ud4P+qiETRsdyNSQV+ZTUMFSIDCZKAUWo25z7kKf5VaFQY9yvJP4 HsHQm3vtoLIeerIXzEQUBJ0LPNsF4nQPfsrXGc3OHcbqKABDwUKHSzZLFhRbeodIHBdg baAg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t9si8958784pge.491.2017.07.15.08.32.37; Sat, 15 Jul 2017 08:32:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751213AbdGOPca (ORCPT + 25 others); Sat, 15 Jul 2017 11:32:30 -0400 Received: from smtp4.ccs.ornl.gov ([160.91.203.40]:57544 "EHLO smtp4.ccs.ornl.gov" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751066AbdGOPc3 (ORCPT ); Sat, 15 Jul 2017 11:32:29 -0400 Received: from star.ccs.ornl.gov (star.ccs.ornl.gov [160.91.202.134]) by smtp4.ccs.ornl.gov (Postfix) with ESMTP id BD94C100AFF7; Sat, 15 Jul 2017 11:32:27 -0400 (EDT) Received: by star.ccs.ornl.gov (Postfix, from userid 2004) id B88F9620; Sat, 15 Jul 2017 11:32:27 -0400 (EDT) From: James Simmons To: Greg Kroah-Hartman , devel@driverdev.osuosl.org, Andreas Dilger , Oleg Drokin , Arnd Bergmann , Al Viro Cc: Amir Shehata , Olaf Weber , Linux Kernel Mailing List , Lustre Development List , stable@vger.kernel.org, James Simmons Subject: [PATCH] staging: lustre: ko2iblnd: check copy_from_iter/copy_to_iter return code Date: Sat, 15 Jul 2017 11:32:08 -0400 Message-Id: <1500132728-28511-1-git-send-email-jsimmons@infradead.org> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnd Bergmann We now get a helpful warning for code that calls copy_{from,to}_iter without checking the return value, introduced by commit aa28de275a24 ("iov_iter/hardening: move object size checks to inlined part"). drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_send': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1643:2: error: ignoring return value of 'copy_from_iter', declared with attribute warn_unused_result [-Werror=unused-result] drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c: In function 'kiblnd_recv': drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c:1744:3: error: ignoring return value of 'copy_to_iter', declared with attribute warn_unused_result [-Werror=unused-result] In case we get short copies here, we may get incorrect behavior. I've added failure handling for both rx and tx now, returning -EFAULT as expected. Cc: stable@vger.kernel.org Signed-off-by: Arnd Bergmann Signed-off-by: James Simmons --- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) -- 1.8.3.1 diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c index 85b242e..8fc191d 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -1640,8 +1640,13 @@ static int kiblnd_resolve_addr(struct rdma_cm_id *cmid, ibmsg = tx->tx_msg; ibmsg->ibm_u.immediate.ibim_hdr = *hdr; - copy_from_iter(&ibmsg->ibm_u.immediate.ibim_payload, IBLND_MSG_SIZE, - &from); + rc = copy_from_iter(&ibmsg->ibm_u.immediate.ibim_payload, payload_nob, + &from); + if (rc != payload_nob) { + kiblnd_pool_free_node(&tx->tx_pool->tpo_pool, &tx->tx_list); + return -EFAULT; + } + nob = offsetof(struct kib_immediate_msg, ibim_payload[payload_nob]); kiblnd_init_tx_msg(ni, tx, IBLND_MSG_IMMEDIATE, nob); @@ -1741,8 +1746,14 @@ static int kiblnd_resolve_addr(struct rdma_cm_id *cmid, break; } - copy_to_iter(&rxmsg->ibm_u.immediate.ibim_payload, - IBLND_MSG_SIZE, to); + rc = copy_to_iter(&rxmsg->ibm_u.immediate.ibim_payload, rlen, + to); + if (rc != rlen) { + rc = -EFAULT; + break; + } + + rc = 0; lnet_finalize(ni, lntmsg, 0); break;