All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Ronnie Sahlberg <lsahlber@redhat.com>,
	Steve French <stfrench@microsoft.com>,
	Sasha Levin <sashal@kernel.org>,
	linux-cifs@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 03/26] cifs: fix return value for cifs_listxattr
Date: Tue, 13 Nov 2018 00:51:27 -0500	[thread overview]
Message-ID: <20181113055150.78773-3-sashal@kernel.org> (raw)
In-Reply-To: <20181113055150.78773-1-sashal@kernel.org>

From: Ronnie Sahlberg <lsahlber@redhat.com>

[ Upstream commit 0c5d6cb6643f48ad3775322f3ebab6c7eb67484e ]

If the application buffer was too small to fit all the names
we would still count the number of bytes and return this for
listxattr. This would then trigger a BUG in usercopy.c

Fix the computation of the size so that we return -ERANGE
correctly when the buffer is too small.

This fixes the kernel BUG for xfstest generic/377

Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/cifs/smb2ops.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index 4e5b05263e4a..3372eedaa94d 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -441,6 +441,7 @@ move_smb2_ea_to_cifs(char *dst, size_t dst_size,
 	int rc = 0;
 	unsigned int ea_name_len = ea_name ? strlen(ea_name) : 0;
 	char *name, *value;
+	size_t buf_size = dst_size;
 	size_t name_len, value_len, user_name_len;
 
 	while (src_size > 0) {
@@ -476,9 +477,10 @@ move_smb2_ea_to_cifs(char *dst, size_t dst_size,
 			/* 'user.' plus a terminating null */
 			user_name_len = 5 + 1 + name_len;
 
-			rc += user_name_len;
-
-			if (dst_size >= user_name_len) {
+			if (buf_size == 0) {
+				/* skip copy - calc size only */
+				rc += user_name_len;
+			} else if (dst_size >= user_name_len) {
 				dst_size -= user_name_len;
 				memcpy(dst, "user.", 5);
 				dst += 5;
@@ -486,8 +488,7 @@ move_smb2_ea_to_cifs(char *dst, size_t dst_size,
 				dst += name_len;
 				*dst = 0;
 				++dst;
-			} else if (dst_size == 0) {
-				/* skip copy - calc size only */
+				rc += user_name_len;
 			} else {
 				/* stop before overrun buffer */
 				rc = -ERANGE;
-- 
2.17.1

  parent reply	other threads:[~2018-11-13  5:51 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-13  5:51 [PATCH AUTOSEL 4.14 01/26] bfs: add sanity check at bfs_fill_super() Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 02/26] cifs: don't dereference smb_file_target before null check Sasha Levin
2018-11-13  5:51 ` Sasha Levin [this message]
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 04/26] arm64: kprobe: make page to RO mode when allocate it Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 05/26] nvme-pci: fix conflicting p2p resource adds Sasha Levin
2018-11-13  5:51   ` Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 06/26] ixgbe: fix MAC anti-spoofing filter after VFLR Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 07/26] mm: Fix warning in insert_pfn() Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 08/26] mm/memory_hotplug: make add_memory() take the device_hotplug_lock Sasha Levin
2018-11-13  5:51   ` Sasha Levin
2018-11-13  5:51   ` Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 09/26] reiserfs: propagate errors from fill_with_dentries() properly Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 10/26] hfs: prevent btree data loss on root split Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 11/26] hfsplus: " Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 12/26] um: Give start_idle_thread() a return code Sasha Levin
2018-11-13  5:51   ` Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 13/26] drm/edid: Add 6 bpc quirk for BOE panel Sasha Levin
2018-11-13  5:51   ` Sasha Levin
2018-11-13  5:51   ` Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 14/26] platform/x86: intel_telemetry: report debugfs failure Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 15/26] clk: fixed-rate: fix of_node_get-put imbalance Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 16/26] perf symbols: Set PLT entry/header sizes properly on Sparc Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 17/26] fs/exofs: fix potential memory leak in mount option parsing Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 18/26] clk: samsung: exynos5420: Enable PERIS clocks for suspend Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 19/26] apparmor: Fix uninitialized value in aa_split_fqname Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 20/26] x86/earlyprintk: Add a force option for pciserial device Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 21/26] platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307 Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 22/26] arm64: percpu: Initialize ret in the default case Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 23/26] mm/vmstat.c: assert that vmstat_text is in sync with stat_items_size Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 24/26] userfaultfd: allow get_mempolicy(MPOL_F_NODE|MPOL_F_ADDR) to trigger userfaults Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 25/26] mm: don't miss the last page because of round-off error Sasha Levin
2018-11-13  5:51 ` [PATCH AUTOSEL 4.14 26/26] mm: don't warn about large allocations for slab Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181113055150.78773-3-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lsahlber@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=stfrench@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.