All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org
Cc: Gao Xiang <hsiangkao@linux.alibaba.com>, Sasha Levin <sashal@kernel.org>
Subject: Re: [PATCH 5.15.y] erofs: fix incorrect symlink detection in fast symlink
Date: Wed, 18 Dec 2024 07:34:08 -0500	[thread overview]
Message-ID: <20241218070817-693dae50bd8a8a93@stable.kernel.org> (raw)
In-Reply-To: <20241218073402.442917-1-hsiangkao@linux.alibaba.com>

[ Sasha's backport helper bot ]

Hi,

The upstream commit SHA1 provided is correct: 9ed50b8231e37b1ae863f5dec8153b98d9f389b4


Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: 0c9b52bfee0e)
6.1.y | Present (different SHA1: ec134c1855c8)
5.15.y | Not found

Note: The patch differs from the upstream commit:
---
1:  9ed50b8231e3 ! 1:  80df2f17dee8 erofs: fix incorrect symlink detection in fast symlink
    @@ Metadata
      ## Commit message ##
         erofs: fix incorrect symlink detection in fast symlink
     
    +    commit 9ed50b8231e37b1ae863f5dec8153b98d9f389b4 upstream.
    +
         Fast symlink can be used if the on-disk symlink data is stored
         in the same block as the on-disk inode, so we don’t need to trigger
         another I/O for symlink data.  However, currently fs correction could be
    @@ Commit message
         Link: https://lore.kernel.org/r/bb2dd430-7de0-47da-ae5b-82ab2dd4d945@app.fastmail.com
         Fixes: 431339ba9042 ("staging: erofs: add inode operations")
         [ Note that it's a runtime misbehavior instead of a security issue. ]
    -    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
         Link: https://lore.kernel.org/r/20240909031911.1174718-1-hsiangkao@linux.alibaba.com
    +    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
     
      ## fs/erofs/inode.c ##
    -@@ fs/erofs/inode.c: static int erofs_fill_symlink(struct inode *inode, void *kaddr,
    +@@ fs/erofs/inode.c: static int erofs_fill_symlink(struct inode *inode, void *data,
      			      unsigned int m_pofs)
      {
      	struct erofs_inode *vi = EROFS_I(inode);
    --	unsigned int bsz = i_blocksize(inode);
     +	loff_t off;
      	char *lnk;
      
     -	/* if it cannot be handled with fast symlink scheme */
     -	if (vi->datalayout != EROFS_INODE_FLAT_INLINE ||
    --	    inode->i_size >= bsz || inode->i_size < 0) {
    +-	    inode->i_size >= PAGE_SIZE || inode->i_size < 0) {
     +	m_pofs += vi->xattr_isize;
     +	/* check if it cannot be handled with fast symlink scheme */
     +	if (vi->datalayout != EROFS_INODE_FLAT_INLINE || inode->i_size < 0 ||
    @@ fs/erofs/inode.c: static int erofs_fill_symlink(struct inode *inode, void *kaddr
      		inode->i_op = &erofs_symlink_iops;
      		return 0;
      	}
    -@@ fs/erofs/inode.c: static int erofs_fill_symlink(struct inode *inode, void *kaddr,
    +@@ fs/erofs/inode.c: static int erofs_fill_symlink(struct inode *inode, void *data,
      	if (!lnk)
      		return -ENOMEM;
      
     -	m_pofs += vi->xattr_isize;
    --	/* inline symlink data shouldn't cross block boundary */
    --	if (m_pofs + inode->i_size > bsz) {
    +-	/* inline symlink data shouldn't cross page boundary as well */
    +-	if (m_pofs + inode->i_size > PAGE_SIZE) {
     -		kfree(lnk);
     -		erofs_err(inode->i_sb,
     -			  "inline data cross block boundary @ nid %llu",
    @@ fs/erofs/inode.c: static int erofs_fill_symlink(struct inode *inode, void *kaddr
     -		DBG_BUGON(1);
     -		return -EFSCORRUPTED;
     -	}
    - 	memcpy(lnk, kaddr + m_pofs, inode->i_size);
    +-
    + 	memcpy(lnk, data + m_pofs, inode->i_size);
      	lnk[inode->i_size] = '\0';
      
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.15.y       |  Success    |  Success   |

      reply	other threads:[~2024-12-18 12:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-18  7:34 [PATCH 5.15.y] erofs: fix incorrect symlink detection in fast symlink Gao Xiang
2024-12-18  7:34 ` Gao Xiang
2024-12-18 12:34 ` Sasha Levin [this message]

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=20241218070817-693dae50bd8a8a93@stable.kernel.org \
    --to=sashal@kernel.org \
    --cc=hsiangkao@linux.alibaba.com \
    --cc=stable@vger.kernel.org \
    /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.