All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH v2 0/4] btrfs-progs: fix the filename sanitization of btrfs-image
Date: Fri, 19 Jul 2024 08:03:18 +0930	[thread overview]
Message-ID: <cover.1721341885.git.wqu@suse.com> (raw)

[CHANGELOG]
v2:
- Various grammar fixes in the command docs
- Use `_mktemp()` and `_log()` when possible
- Use a dedicated filename list, and grep to find an exact match for
  them.

There are several bugs in btrfs-image filename sanitization:

- Ensured kernel path resolution bug
  Since during path resolution btrfs uses hash to find the child inode,
  with garbage filled DIR_ITEMs, it's definitely unable to properly
  resolve the path.

  A warning is added to the man page by the first patch.

- Only the last item got properly sanitized
  All the remaining INODE_REF/DIR_INDEX/DIR_ITEM are not sanitized at
  all.

  This is fixed by the second patch.

- Sanitized filename contains non-ASCII chars
  This is fixed by the third patch.


Finally a new test case is introduced to verify the filename
sanitization behavior of btrfs-image.

Qu Wenruo (4):
  btrfs-progs: add warning for -s option of btrfs-image
  btrfs-progs: image: fix the bug that filename sanitization not working
  btrfs-progs: misc-tests: add a basic resume test using error injection
  btrfs-progs: misc-tests: add a test case for filename sanitization

 Documentation/btrfs-image.rst                 | 19 +++++---
 image/sanitize.c                              |  8 +++-
 tests/common                                  |  7 +++
 .../065-csum-conversion-inject/test.sh        | 45 +++++++++++++++++++
 tests/misc-tests/065-image-filename/test.sh   | 38 ++++++++++++++++
 5 files changed, 109 insertions(+), 8 deletions(-)
 create mode 100755 tests/misc-tests/065-csum-conversion-inject/test.sh
 create mode 100755 tests/misc-tests/065-image-filename/test.sh

--
2.45.2


             reply	other threads:[~2024-07-18 22:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-18 22:33 Qu Wenruo [this message]
2024-07-18 22:33 ` [PATCH v2 1/4] btrfs-progs: add warning for -s option of btrfs-image Qu Wenruo
2024-07-18 22:33 ` [PATCH v2 2/4] btrfs-progs: image: fix the bug that filename sanitization not working Qu Wenruo
2024-07-18 22:33 ` [PATCH v2 3/4] btrfs-progs: misc-tests: add a basic resume test using error injection Qu Wenruo
2024-07-18 22:33 ` [PATCH v2 4/4] btrfs-progs: misc-tests: add a test case for filename sanitization Qu Wenruo

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=cover.1721341885.git.wqu@suse.com \
    --to=wqu@suse.com \
    --cc=linux-btrfs@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.