git: d8083f5425fd - releng/14.1 - cd9660: Make sure that struct ifid fits in generic filehandle structure
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 29 Jan 2025 18:55:19 UTC
The branch releng/14.1 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=d8083f5425fd486aad2d6178ce8c0545f0cb6957
commit d8083f5425fd486aad2d6178ce8c0545f0cb6957
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-12-06 02:03:59 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-01-29 17:11:57 +0000
cd9660: Make sure that struct ifid fits in generic filehandle structure
File system specific *fid structures are copied into the generic
struct fid defined in sys/mount.h.
As such, they cannot be larger than struct fid.
This patch packs the structure and checks via a __Static_assert().
Approved by: so
Security: FreeBSD-SA-25:02.fs
Reported by: Kevin Miller <mas@0x194.net>
Reviewed by: olce, imp, kib, emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D47879
(cherry picked from commit 205659c43d87bd42c4a0819fde8f81e8ebba068e)
(cherry picked from commit 54974e731f279941ef7aebd7d30ba2e9299a4056)
---
sys/fs/cd9660/cd9660_vnops.c | 3 +++
sys/fs/cd9660/iso.h | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/sys/fs/cd9660/cd9660_vnops.c b/sys/fs/cd9660/cd9660_vnops.c
index cb619379e2cc..31dacb392a6b 100644
--- a/sys/fs/cd9660/cd9660_vnops.c
+++ b/sys/fs/cd9660/cd9660_vnops.c
@@ -761,6 +761,9 @@ cd9660_pathconf(struct vop_pathconf_args *ap)
/* NOTREACHED */
}
+_Static_assert(sizeof(struct ifid) <= sizeof(struct fid),
+ "struct ifid must be no larger than struct fid");
+
/*
* Vnode pointer to File handle
*/
diff --git a/sys/fs/cd9660/iso.h b/sys/fs/cd9660/iso.h
index bf98e75c42d9..b54f5f8e5cf4 100644
--- a/sys/fs/cd9660/iso.h
+++ b/sys/fs/cd9660/iso.h
@@ -269,7 +269,7 @@ struct ifid {
u_short ifid_pad;
cd_ino_t ifid_ino;
long ifid_start;
-};
+} __packed;
#define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data))