hostfs: fix dev_t handling
authorJohannes Berg <johannes.berg@intel.com>
Tue, 2 Jul 2024 07:24:41 +0000 (09:24 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 3 Jul 2024 10:23:50 +0000 (12:23 +0200)
commit267ed02c2121b75e0eaaa338240453b576039e4a
treed5a8154378b42e684aa6e56fad05f996caaaebf8
parent53585f9ea40a9466ab9c1151f15984513eb542f7
hostfs: fix dev_t handling

dev_t is a kernel type and may have different definitions
in kernel and userspace. On 32-bit x86 this currently makes
the stat structure being 4 bytes longer in the user code,
causing stack corruption.

However, this is (potentially) not the only problem, since
dev_t is a different type on user/kernel side, so we don't
know that the major/minor encoding isn't also different.
Decode/encode it instead to address both problems.

Cc: stable@vger.kernel.org
Fixes: 74ce793bcbde ("hostfs: Fix ephemeral inodes")
Link: https://patch.msgid.link/20240702092440.acc960585dd5.Id0767e12f562a69c6cd3c3262dc3d765db350cf6@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
fs/hostfs/hostfs.h
fs/hostfs/hostfs_kern.c
fs/hostfs/hostfs_user.c