From: DaeMyung Kang <charsyam@gmail.com>
To: Namjae Jeon <linkinjeon@kernel.org>, Hyunchul Lee <hyc.lee@gmail.com>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
DaeMyung Kang <charsyam@gmail.com>
Subject: [PATCH v4 2/6] ntfs: do not replace volume name after lookup errors
Date: Sat, 30 May 2026 23:35:10 +0900 [thread overview]
Message-ID: <20260530143514.3083601-3-charsyam@gmail.com> (raw)
In-Reply-To: <20260530143514.3083601-1-charsyam@gmail.com>
ntfs_write_volume_label() removes an existing $VOLUME_NAME attribute and
then adds the replacement. The old code only distinguished lookup success
from all other results, so any lookup error was treated like an absent
label and the add path still ran.
That is unsafe once lookup-time validation rejects corrupt $VOLUME_NAME
records with -EIO: the corrupt record would remain in place and a second
$VOLUME_NAME record could be appended next to it.
Only add the replacement after the old label was removed successfully or
after lookup returned -ENOENT. Propagate all other lookup errors, and
also stop if removing the old attribute fails.
Signed-off-by: DaeMyung Kang <charsyam@gmail.com>
---
fs/ntfs/super.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index a2648d1c8fd0..140b8c8a811e 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -452,10 +452,15 @@ int ntfs_write_volume_label(struct ntfs_volume *vol, char *label)
goto out;
}
- if (!ntfs_attr_lookup(AT_VOLUME_NAME, NULL, 0, 0, 0, NULL, 0,
- ctx))
- ntfs_attr_record_rm(ctx);
+ ret = ntfs_attr_lookup(AT_VOLUME_NAME, NULL, 0, 0, 0, NULL, 0,
+ ctx);
+ if (!ret)
+ ret = ntfs_attr_record_rm(ctx);
+ else if (ret == -ENOENT)
+ ret = 0;
ntfs_attr_put_search_ctx(ctx);
+ if (ret)
+ goto out;
ret = ntfs_resident_attr_record_add(vol_ni, AT_VOLUME_NAME, AT_UNNAMED, 0,
(u8 *)uname, uname_len * sizeof(__le16), 0);
--
2.43.0
next prev parent reply other threads:[~2026-05-30 14:35 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-30 14:35 [PATCH v4 0/6] ntfs: validate attribute values on lookup DaeMyung Kang
2026-05-30 14:35 ` [PATCH v4 1/6] " DaeMyung Kang
2026-05-30 14:35 ` DaeMyung Kang [this message]
2026-05-30 14:35 ` [PATCH v4 3/6] ntfs: reinit search context before volume information lookup DaeMyung Kang
2026-05-30 14:35 ` [PATCH v4 4/6] ntfs: validate resident volume name values on lookup DaeMyung Kang
2026-05-30 14:35 ` [PATCH v4 5/6] ntfs: update index root allocated size before shrink DaeMyung Kang
2026-05-30 14:35 ` [PATCH v4 6/6] ntfs: validate resident index root values on lookup DaeMyung Kang
2026-06-01 4:37 ` Namjae Jeon
2026-06-01 7:51 ` CharSyam
2026-06-01 8:46 ` Namjae Jeon
2026-06-06 1:40 ` Namjae Jeon
2026-06-05 15:30 ` [PATCH v4 0/6] ntfs: validate attribute " Namjae Jeon
2026-06-07 0:00 ` CharSyam
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=20260530143514.3083601-3-charsyam@gmail.com \
--to=charsyam@gmail.com \
--cc=hyc.lee@gmail.com \
--cc=linkinjeon@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome