From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C479AC25B76 for ; Mon, 3 Jun 2024 17:42:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3D10C6B0085; Mon, 3 Jun 2024 13:42:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 380AD6B0089; Mon, 3 Jun 2024 13:42:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 248046B008A; Mon, 3 Jun 2024 13:42:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 07D876B0085 for ; Mon, 3 Jun 2024 13:42:50 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9EEEB406EE for ; Mon, 3 Jun 2024 17:42:49 +0000 (UTC) X-FDA: 82190297658.15.8D1EE4A Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by imf09.hostedemail.com (Postfix) with ESMTP id C4811140014 for ; Mon, 3 Jun 2024 17:42:47 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xy0wPDJI; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717436567; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cX46hsOnvcHYWQ2/08aJP6HMfOKz/H2iKz5LdOxxIiY=; b=BgNCH2eK4R2EGE0FNjFnL+iYRTRD0t70q4mN/AM9JEZEm8ExlnIBeeyU0uwoTgLdY+PDoY Rbfd1Seho5vdO309SgGUOeuXB7qE5hyqWWlZXQHQ4t3i9jSByufqT4Tdr2nY3mijnjkB/s KhHAtMwjA4qoQThWsTYVionXi5jaZ6E= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717436567; a=rsa-sha256; cv=none; b=Vd9PO7VOcP0G6plDuGdPMzzUBZntFkoHw+bKc+xMHUlFpWxOWdBGmJOKmNYY3mPRUh8mQ9 TSecWpvWfk0hpvVR3GI93NIK8H6UsWTO6eZ3iaODMNYxVHR48exm21uODEJ6qqw/mKbRh8 sJ/LKIRJKzp1fiKMBPi+XmnOEysrwgs= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xy0wPDJI; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=yosryahmed@google.com Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-57a2f27090aso5938446a12.0 for ; Mon, 03 Jun 2024 10:42:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717436566; x=1718041366; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=cX46hsOnvcHYWQ2/08aJP6HMfOKz/H2iKz5LdOxxIiY=; b=xy0wPDJIXYnJOyp4rRKMLDvkJWjTg1ws/hJvbXv/+240Gag/mMaHZcXXJU+/H4wZSW 4nCTyCUOY80UYRr3SH5eS1nsasp6SfIBLmbxKe0e9vTBaBsPrxH587G+NApWvtJ475xa 17W5vJmgJ5D/vPu2s8girhd04ptT6tunUQqPoN9SUVbIBuaJqNeXBTFrgF7xPHiC0nKO d/NuPa142hk3UUJf7qhSm3S7+H9853JFQB02Lub19Td4H1ktf3N3JP0eA++fGMYSkBtC wwgJ16ApPAO/S1tC7UzIPYd/RKW/XDnzVIuNk4xiC5mUTQRNSREQMcYcjjPQHwPvQobj 76gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717436566; x=1718041366; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cX46hsOnvcHYWQ2/08aJP6HMfOKz/H2iKz5LdOxxIiY=; b=lqaU/onQSX2yWsCUigziSllQUFM3tUPoOBVSXn+gGXDquQrsjv5Y3HOcfqIpde4KZ3 n3iRyGnlAOMhMGf4Qb2z2atGoE5fRtgrFPQ+C82955k9SDX0RObv2d0rBeNy+JHmoxW4 VhvvnSzZWwHiVpINLuJBC4tBcmMTaN5TfF4CkkUGETy8ORs6UOMYfL8yYJqt+WQAPOCF Byw2fFW0bY1UQYS3E8Qcokv28/wjKCf6ysQlDcCOfBDmqNVt4iiA7HnjMpZoLPVua0Q4 HEnebbX+bVbk0VcYYHvmKRCF9o+6kVy+Zkab+NllBCZXvfd+N52VnWv/a3SoYzicZCnh o1fQ== X-Forwarded-Encrypted: i=1; AJvYcCUdqn3KjZFsCtIUPqcK9eCqSH2wT7qTh3h8650mzYTOl6LXhij9oP6JC8nz/MOtjJOGt05XTPOp3b/5v6xxk4LIqZg= X-Gm-Message-State: AOJu0Yw5ZkSKPXMCuEw9nQUe0fyzU+t1qrgGXGP1o5t6h3l+hB+XTp0q gxVSYSAegfwYyNbdx5tM/Emv7Esqu7WU9jLcCFsMwzjKzvbhF20EUlEw31S9Ptb4M1h/PqgUp70 e+RmhutelTWC7zYVmg1SyaiNNvUGT7n1z4Gqh X-Google-Smtp-Source: AGHT+IHi+ZsXWMd56cnJoCCuxUXLuaKUiF6CkEcw+xlGa1Gq7gdbgvhyC/+OuXMSzHHUjT2c42a3lstZlU6g7HMSpZw= X-Received: by 2002:a17:906:d0d4:b0:a59:be21:3587 with SMTP id a640c23a62f3a-a69541453d3mr31147066b.8.1717436565933; Mon, 03 Jun 2024 10:42:45 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Yosry Ahmed Date: Mon, 3 Jun 2024 10:42:07 -0700 Message-ID: Subject: Re: [PATCH] fix: Prevent memory leak by checking for NULL buffer before calling css_put() To: Axel Rasmussen Cc: Geunsik Lim , Vlastimil Babka , Ingo Molnar , Andrew Morton , Thomas Gleixner , Peter Zijlstra , Hugh Dickins , "H. Peter Anvin" , Steven Rostedt , linux-kernel , linux-mm Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: hwyyrjssyn93o1mkdgmk9getg3skj9yz X-Rspamd-Queue-Id: C4811140014 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1717436567-35277 X-HE-Meta: U2FsdGVkX18NyNIOGiOV/bXlSb4ff7IzQt6l2PITSpMFIxe6mhMDhkKFTGetKa8irP1AQ8c5f5y1vZQXNevBRJzMVsDu1hSNPoqGR6QE0NF+VTCfxcvXGYUVcaMgMxw5MBfeMpCWFbb3k3W1gMUt8BDOr8tmGMQBgwM2K9AV2aPeko+pYGXmdXoh8z4ZBPtoesN+ESYKtT1fivWsndU5g95Pxo16YcenKhTQeqmC5R+g9i76yK4mChHF3LnPafIFwvn/naCSnqwf7I4dSLmxVkMwNjxjUGQd1IAw2lonDRjvm68g0PGH8MtHPSPPkYZ9wtCMuYkZbpsiQm4X+bKoq1wCDiWZ01P4DiccGibhv+sTAp/ljgd9lY9MiHoPHrwNvMxHa90kKdC0Tm/ZmcI0F6C+lkhQIjigRRNelkVjuRLmbMZ3RZ3UTABFjApzYWDtyEk8RWKtg6iiGKCxv7W5+lOSSLx9x9JrHoBtC4ZjQR4Gc6d3hci8G9EcYTg8jKea0GlJWq1ztcUQc/Eyjfrpv0Od8/jO8Yf27tq0uqdUsoMKR+WtzEg+D5VTBDy1G4mtHPVHw3MPrXDlhqy1nRZosaEvJKLGJ+xltzhqu5TWAj/6DpG6M7Y/9EN8Jd4wij/MQXfE46VFTIPJR2hzzycwhc5CoEO+eaRGIdBdYqYHDvF5Ae6K6uNfkL7nPO0Yum6MTK2wjFNmdKtwKAsg02Wn1vG/SPXRY8cQNNfe/zcbwKc4nZIRaL0brYxIO8ukctkdk4nq8t9IkC00HxkZRL5iVa3rS0WUvxLnZLFKUEn4RYkDXjw0AG9Vj9I2GT+IYrko2nGOAqEUjsClrWEpvC2cPHy0HNWz5t3fhQ2Ve92N47i4x5aft1Bu3s3XLmhSTHVzxFniwvywmSqajZjUMkkzZHJYkpwRj05APdTgjqOieR15/32xJ0bYAlOe6WCGmO+kqhpk01YsFxiXN5YusUb FLSFHFKW Z3hmMqlWrZ3BEgeSqSipcaUKOq7F4hQSGRAmxBXfn2GUhOIwDZbPQklfUAcYXitp8dsOg9Ss5eot6NXw1tjGuSM8zIBRSmVOFnrvfTz1Oxi44pyKDwjEdd7JIhBxJp/FMHrfZM47HTzMAhwqVNUhFq0JZR6VJ2gV5y5ZGnMn08IC/2NdX+q1cFuC9dAjRK3qB7bSuBR1headYPytyIUyf3iFZnmuHKN0qOYq1Dn1Cc0dtUfmYYMOYqlaixq8vpkwiqr3P1KP7hvt34B7nc3M556u3NHxuxv/HzqVkX+ig16jkBdBghpgpZdp3K6GsfC9nFlqosHhZDKBbu6rZ0xcAyJNcppfb94Mz31GxwrLajDane9Txt2ilNdKh92RdaELS9o0H7uI2lO2nPJZjqJf/iWGb8lK2XbQ2NuzV X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Jun 3, 2024 at 10:32=E2=80=AFAM Axel Rasmussen wrote: > > On Mon, Jun 3, 2024 at 5:33=E2=80=AFAM Geunsik Lim wrote: > > > > This commit addresses a potential memory leak in the > > `get_mm_memcg_path()` function > > by explicitly checking if the allocated buffer (`buf`) is NULL before > > calling the > > `css_put()` function. The prefix 'css' means abbreviation of cgroup_sub= sys_state > > > > Previously, the code would directly call `css_put()` without checking > > the value of > > `buf`, which could lead to a memory leak if the buffer allocation faile= d. > > This commit introduces a conditional check to ensure that `css_put()` > > is only called > > if `buf` is not NULL. > > > > This change enhances the code's robustness and prevents memory leaks, i= mproving > > overall system stability. > > > > **Specific Changes:** > > > > * In the `out_put` label, an `if` statement is added to check > > if `buf` is not NULL before calling `css_put()`. > > > > **Benefits:** > > > > * Prevents potential memory leaks > > * Enhances code robustness > > * Improves system stability > > > > Signed-off-by: Geunsik Lim > > Signed-off-by: Geunsik Lim > > --- > > mm/mmap_lock.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/mm/mmap_lock.c b/mm/mmap_lock.c > > index 1854850b4b89..7314045b0e3b 100644 > > --- a/mm/mmap_lock.c > > +++ b/mm/mmap_lock.c > > @@ -213,7 +213,8 @@ static const char *get_mm_memcg_path(struct mm_stru= ct *mm) > > cgroup_path(memcg->css.cgroup, buf, MEMCG_PATH_BUF_SIZE); > > > > out_put: > > - css_put(&memcg->css); > > + if (buf !=3D NULL) > > + css_put(&memcg->css); > > out: > > return buf; > > } > > I think the existing code is correct, and this change actually > introduces a memory leak where there was none before. > > In the case where get_memcg_path_buf() returns NULL, we *still* need > to css_put() what we got from get_mem_cgroup_from_mm() before. > > NAK, unless I'm missing something. +1 We already skip css_put() if get_mem_cgroup_from_mm() returns NULL. Whether or not get_memcg_path_buf() succeeds is irrelevant here.