From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C56BF5A874 for ; Mon, 18 Dec 2023 15:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-28b866dabdcso556499a91.3 for ; Mon, 18 Dec 2023 07:38:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702913938; x=1703518738; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VXnthhEIT+z4HcmouvebYbcpssQpMXsgb55UE6UfBQo=; b=h/Mr22py71vaNPFoWAxJdJND2Mi38ipzSqJM8j9nZte078UC4ybt+orflGYHIog0qM u85lh5gqgYeSGdUyC3En98YD/KgJLfF4ec3cld+KP/SC7rAk3F19LDcDrEvLQxu4UDi7 vfhl0DNnKDZzQVQRPvfkGyE9e5lJV36Qe+RyqjAnuJEjYS9YmFgdQoXh16iWsFh1gnYs WHL15NIOpv5HWXCSw0Y55RiXC0oY5ZY7U/5aOPrxH6cpOfy4QUS4Ry0phQ6yyOAtu6PO 7OAjAgLjlAsrsE9MuPMWc+X13oTJ4eCldvtAAx52gkE8A5yqCMx0hYdyaNCtBdx/uVZB cNMw== X-Gm-Message-State: AOJu0YwCzemTLf1GnQe0NEW4OB/BMQzdgfodqx8EHkNmPogNFvg3NH5B pPps/hZOOePP30UGyLXWdBU= X-Google-Smtp-Source: AGHT+IFzvHWKaJ9Zio1vdyj80jX1KtS16QSPBoG3J/N1K0PN7Yp9lCwJwbcLHPdRiElzGgILdi0lDQ== X-Received: by 2002:a17:90b:3695:b0:28b:6e3c:9c17 with SMTP id mj21-20020a17090b369500b0028b6e3c9c17mr587625pjb.85.1702913937957; Mon, 18 Dec 2023 07:38:57 -0800 (PST) Received: from localhost.localdomain ([110.14.71.32]) by smtp.gmail.com with ESMTPSA id fs7-20020a17090af28700b00286ed94466dsm5613041pjb.32.2023.12.18.07.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 07:38:57 -0800 (PST) From: Namjae Jeon To: gregkh@linuxfoundation.org, stable@vger.kernel.org Cc: smfrench@gmail.com, Marios Makassikis , Namjae Jeon , Steve French Subject: [PATCH 5.15.y 067/154] ksmbd: Fix resource leak in smb2_lock() Date: Tue, 19 Dec 2023 00:33:27 +0900 Message-Id: <20231218153454.8090-68-linkinjeon@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231218153454.8090-1-linkinjeon@kernel.org> References: <20231218153454.8090-1-linkinjeon@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Marios Makassikis [ Upstream commit 01f6c61bae3d658058ee6322af77acea26a5ee3a ] "flock" is leaked if an error happens before smb2_lock_init(), as the lock is not added to the lock_list to be cleaned up. Signed-off-by: Marios Makassikis Acked-by: Namjae Jeon Signed-off-by: Steve French --- fs/ksmbd/smb2pdu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c index 08d416beb88e..c29c22490f8d 100644 --- a/fs/ksmbd/smb2pdu.c +++ b/fs/ksmbd/smb2pdu.c @@ -6907,6 +6907,7 @@ int smb2_lock(struct ksmbd_work *work) if (lock_start > U64_MAX - lock_length) { pr_err("Invalid lock range requested\n"); rsp->hdr.Status = STATUS_INVALID_LOCK_RANGE; + locks_free_lock(flock); goto out; } @@ -6926,6 +6927,7 @@ int smb2_lock(struct ksmbd_work *work) "the end offset(%llx) is smaller than the start offset(%llx)\n", flock->fl_end, flock->fl_start); rsp->hdr.Status = STATUS_INVALID_LOCK_RANGE; + locks_free_lock(flock); goto out; } @@ -6937,6 +6939,7 @@ int smb2_lock(struct ksmbd_work *work) flock->fl_type != F_UNLCK) { pr_err("conflict two locks in one request\n"); err = -EINVAL; + locks_free_lock(flock); goto out; } } @@ -6945,6 +6948,7 @@ int smb2_lock(struct ksmbd_work *work) smb_lock = smb2_lock_init(flock, cmd, flags, &lock_list); if (!smb_lock) { err = -EINVAL; + locks_free_lock(flock); goto out; } } -- 2.25.1