From: Cyril Hrubis <chrubis@suse.cz>
To: Andrea Cervesato <andrea.cervesato@suse.com>
Cc: Jan Kara <jack@suse.cz>, ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v4 13/13] Add statmount07 test
Date: Fri, 4 Oct 2024 11:17:21 +0200 [thread overview]
Message-ID: <Zv-yoVOl1Bn7WZcM@yuki.lan> (raw)
In-Reply-To: <6cac9a7d-3a8c-4502-bd4a-23be491cf0ab@suse.com>
Hi!
> That seems to be a valid value, since I get PASS. Kernel bug?
Looking at kernel it's a bit confusing, the bufsize is supposed to be
the size of the structure plus the buffer allocated for the string
reply. Which makes the code more complicated than it could have been if
these two were separeted properly.
However we do have:
if (kbufsize >= s->bufsize)
return -EOVERFLOW;
in statmount_string(), so we will trigger the error there if we pass one
of the requests that is supposed to produce a string reply.
But there seems to be something strange going on in the
prepare_kstatmount() as well, we do have:
if (ks->mask & STATMOUNT_STRING_REQ) {
if (bufsize == sizeof(ks->sm))
return -EOVERFLOW;
^ This line should probably be if (bufsize <= sizeof(ks->sm))
because we are trying to make sure that the structure is large
enough that we can write at the offset where the
string area starts.
It seems to be guarded by the checks in
statmount_string() later on as well, so I suppose that we
will trigger the EOVERFLOW slightly later if this does not
work though. CCying Jan to have a look.
ks->seq.buf = kvmalloc(seq_size, GFP_KERNEL_ACCOUNT);
if (!ks->seq.buf)
return -ENOMEM;
ks->seq.size = seq_size;
}
However the size seems to be properly used in the
copy_statmount_to_user()
size_t copysize = min_t(size_t, s->bufsize, sizeof(*sm));
...
if (copy_to_user(s->buf, sm, copysize))
return -EFAULT;
This means that we will copy as much of the statmount structure to
userspace as we requested, so in the case that we pass 0 as bufsize none
of the data should be copied and indeed we should get back success.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2024-10-04 9:18 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-09 10:00 [LTP] [PATCH v4 00/13] statmount/listmount testing suites Andrea Cervesato
2024-09-09 10:00 ` [LTP] [PATCH v4 01/13] Add SAFE_STATX macro Andrea Cervesato
2024-09-09 16:21 ` Andrea Cervesato via ltp
2024-10-02 12:27 ` Cyril Hrubis
2024-10-02 13:00 ` Andrea Cervesato via ltp
2024-09-09 10:00 ` [LTP] [PATCH v4 02/13] Add listmount/statmount syscalls Andrea Cervesato
2024-10-02 12:30 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 03/13] Add listmount/statmount fallback declarations Andrea Cervesato
2024-10-02 14:12 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 04/13] Add listmount01 test Andrea Cervesato
2024-10-02 14:05 ` Cyril Hrubis
2024-10-02 14:14 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 05/13] Add listmount02 test Andrea Cervesato
2024-10-02 14:37 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 06/13] Add statmount01 test Andrea Cervesato
2024-10-02 14:45 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 07/13] Add statmount02 test Andrea Cervesato
2024-10-02 15:15 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 08/13] Add statmount03 test Andrea Cervesato
2024-10-03 13:27 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 09/13] Add statmount04 test Andrea Cervesato
2024-10-03 13:51 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 10/13] Add statmount05 test Andrea Cervesato
2024-10-03 14:09 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 11/13] Add TST_EXP_EQ_STR macro Andrea Cervesato
2024-10-03 14:13 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 12/13] Add statmount06 test Andrea Cervesato
2024-10-03 14:20 ` Cyril Hrubis
2024-09-09 10:00 ` [LTP] [PATCH v4 13/13] Add statmount07 test Andrea Cervesato
2024-10-03 14:34 ` Cyril Hrubis
2024-10-04 8:19 ` Andrea Cervesato via ltp
2024-10-04 9:17 ` Cyril Hrubis [this message]
2024-10-04 11:03 ` Andrea Cervesato via ltp
2024-10-04 12:02 ` Jan Kara
2024-10-03 14:42 ` [LTP] [PATCH v4 00/13] statmount/listmount testing suites Cyril Hrubis
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=Zv-yoVOl1Bn7WZcM@yuki.lan \
--to=chrubis@suse.cz \
--cc=andrea.cervesato@suse.com \
--cc=jack@suse.cz \
--cc=ltp@lists.linux.it \
/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