From: Mike Snitzer <snitzer@kernel.org>
To: Demi Marie Obenour <demi@invisiblethingslab.com>, mpatocka@redhat.com
Cc: dm-devel@redhat.com, linux-kernel@vger.kernel.org,
Alasdair Kergon <agk@redhat.com>
Subject: Re: [dm-devel] [PATCH v2 1/6] device-mapper: Check that target specs are sufficiently aligned
Date: Thu, 22 Jun 2023 12:28:28 -0400 [thread overview]
Message-ID: <ZJR2rGZw0Ddf3TFK@redhat.com> (raw)
In-Reply-To: <20230603145244.1538-2-demi@invisiblethingslab.com>
On Sat, Jun 03 2023 at 10:52P -0400,
Demi Marie Obenour <demi@invisiblethingslab.com> wrote:
> Otherwise subsequent code will dereference a misaligned
> `struct dm_target_spec *`, which is undefined behavior.
>
> Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Cc: stable@vger.kernel.org
> ---
> drivers/md/dm-ioctl.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
> index cc77cf3d410921432eb0c62cdede7d55b9aa674a..34fa74c6a70db8aa67aaba3f6a2fc4f38ef736bc 100644
> --- a/drivers/md/dm-ioctl.c
> +++ b/drivers/md/dm-ioctl.c
> @@ -1394,6 +1394,13 @@ static inline fmode_t get_mode(struct dm_ioctl *param)
> static int next_target(struct dm_target_spec *last, uint32_t next, void *end,
> struct dm_target_spec **spec, char **target_params)
> {
> + static_assert(_Alignof(struct dm_target_spec) <= 8,
> + "struct dm_target_spec has excessive alignment requirements");
Really not sure what you mean by "has excessive alignment requirements"...
> + if (next % 8) {
> + DMERR("Next target spec (offset %u) is not 8-byte aligned", next);
> + return -EINVAL;
> + }
> +
> *spec = (struct dm_target_spec *) ((unsigned char *) last + next);
> *target_params = (char *) (*spec + 1);
>
But this patch and patches 2 and 3 need more review. I'd like Mikulas to review.
I did pick up patches 4-6 for the upcoming 6.5 merge window.
Note, please prefix with "dm ioctl" instead of "device-mapper".
(I just switched my "dm" prefix to "dm ioctl" and forced update on the
dm-6.5 branch, so the commit I referenced earlier for your version
copy patch is now here:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-6.5&id=a5a3de762b3ae8959347928843c12502b1b23163
)
Mike
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@kernel.org>
To: Demi Marie Obenour <demi@invisiblethingslab.com>, mpatocka@redhat.com
Cc: Alasdair Kergon <agk@redhat.com>,
dm-devel@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/6] device-mapper: Check that target specs are sufficiently aligned
Date: Thu, 22 Jun 2023 12:28:28 -0400 [thread overview]
Message-ID: <ZJR2rGZw0Ddf3TFK@redhat.com> (raw)
In-Reply-To: <20230603145244.1538-2-demi@invisiblethingslab.com>
On Sat, Jun 03 2023 at 10:52P -0400,
Demi Marie Obenour <demi@invisiblethingslab.com> wrote:
> Otherwise subsequent code will dereference a misaligned
> `struct dm_target_spec *`, which is undefined behavior.
>
> Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Cc: stable@vger.kernel.org
> ---
> drivers/md/dm-ioctl.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
> index cc77cf3d410921432eb0c62cdede7d55b9aa674a..34fa74c6a70db8aa67aaba3f6a2fc4f38ef736bc 100644
> --- a/drivers/md/dm-ioctl.c
> +++ b/drivers/md/dm-ioctl.c
> @@ -1394,6 +1394,13 @@ static inline fmode_t get_mode(struct dm_ioctl *param)
> static int next_target(struct dm_target_spec *last, uint32_t next, void *end,
> struct dm_target_spec **spec, char **target_params)
> {
> + static_assert(_Alignof(struct dm_target_spec) <= 8,
> + "struct dm_target_spec has excessive alignment requirements");
Really not sure what you mean by "has excessive alignment requirements"...
> + if (next % 8) {
> + DMERR("Next target spec (offset %u) is not 8-byte aligned", next);
> + return -EINVAL;
> + }
> +
> *spec = (struct dm_target_spec *) ((unsigned char *) last + next);
> *target_params = (char *) (*spec + 1);
>
But this patch and patches 2 and 3 need more review. I'd like Mikulas to review.
I did pick up patches 4-6 for the upcoming 6.5 merge window.
Note, please prefix with "dm ioctl" instead of "device-mapper".
(I just switched my "dm" prefix to "dm ioctl" and forced update on the
dm-6.5 branch, so the commit I referenced earlier for your version
copy patch is now here:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-6.5&id=a5a3de762b3ae8959347928843c12502b1b23163
)
Mike
next prev parent reply other threads:[~2023-06-22 16:36 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-01 21:24 [dm-devel] [PATCH 0/6] Several device-mapper fixes Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-01 21:24 ` [dm-devel] [PATCH 1/6] device-mapper: Check that target specs are sufficiently aligned Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-01 21:24 ` [dm-devel] [PATCH 2/6] device-mapper: Avoid pointer arithmetic overflow Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-01 21:24 ` [dm-devel] [PATCH 3/6] device-mapper: structs and parameter strings must not overlap Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-01 21:24 ` [dm-devel] [PATCH 4/6] device-mapper: Avoid double-fetch of version Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-03 7:40 ` [dm-devel] " kernel test robot
2023-06-03 7:40 ` kernel test robot
2023-06-03 14:21 ` [dm-devel] " Demi Marie Obenour
2023-06-03 14:21 ` Demi Marie Obenour
2023-06-01 21:24 ` [dm-devel] [PATCH 5/6] device-mapper: Refuse to create device named "control" Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-01 21:24 ` [dm-devel] [PATCH 6/6] device-mapper: "." and ".." are not valid symlink names Demi Marie Obenour
2023-06-01 21:24 ` Demi Marie Obenour
2023-06-03 14:52 ` [dm-devel] [PATCH v2 0/6] Several device-mapper fixes Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
2023-06-03 14:52 ` [dm-devel] [PATCH v2 1/6] device-mapper: Check that target specs are sufficiently aligned Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
2023-06-22 16:28 ` Mike Snitzer [this message]
2023-06-22 16:28 ` Mike Snitzer
2023-06-22 19:51 ` [dm-devel] " Demi Marie Obenour
2023-06-22 19:51 ` Demi Marie Obenour
2023-06-22 22:54 ` [dm-devel] " Mike Snitzer
2023-06-22 22:54 ` Mike Snitzer
2023-06-22 17:29 ` [dm-devel] " Mikulas Patocka
2023-06-22 17:29 ` Mikulas Patocka
2023-06-22 20:27 ` Demi Marie Obenour
2023-06-22 20:27 ` Demi Marie Obenour
2023-06-03 14:52 ` [dm-devel] [PATCH v2 2/6] device-mapper: Avoid pointer arithmetic overflow Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
2023-06-22 17:30 ` [dm-devel] " Mikulas Patocka
2023-06-22 17:30 ` Mikulas Patocka
2023-06-22 22:50 ` Mike Snitzer
2023-06-22 22:50 ` Mike Snitzer
2023-06-03 14:52 ` [dm-devel] [PATCH v2 3/6] device-mapper: structs and parameter strings must not overlap Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
2023-06-22 17:31 ` [dm-devel] " Mikulas Patocka
2023-06-22 17:31 ` Mikulas Patocka
2023-06-03 14:52 ` [dm-devel] [PATCH v2 4/6] device-mapper: Avoid double-fetch of version Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
2023-06-22 16:20 ` [dm-devel] " Mike Snitzer
2023-06-22 16:20 ` Mike Snitzer
2023-06-22 18:43 ` [dm-devel] " Demi Marie Obenour
2023-06-22 18:43 ` Demi Marie Obenour
2023-06-03 14:52 ` [dm-devel] [PATCH v2 5/6] device-mapper: Refuse to create device named "control" Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
2023-06-03 14:52 ` [dm-devel] [PATCH v2 6/6] device-mapper: "." and ".." are not valid symlink names Demi Marie Obenour
2023-06-03 14:52 ` Demi Marie Obenour
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=ZJR2rGZw0Ddf3TFK@redhat.com \
--to=snitzer@kernel.org \
--cc=agk@redhat.com \
--cc=demi@invisiblethingslab.com \
--cc=dm-devel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
/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.