freebsd-dev/sys/geom
Zhenlei Huang 5be5d0d5cb geom_part: Check number of GPT entries and size of GPT entry
Current specification does not have upper limit of the number of
partition entries and the size of partition entry. In
799eac8c3d Andrey V. Elsukov introduced a
limit maximum number of GPT entries to 4k, but that is for write routine
(gpart create) only. When attaching disks that have large number of GPT
entries exceeding the limit, or disks with large size of partition
entry, it is still possible to exhaust kernel memory.

1. Reuse the limit of the maximum number of partition entries.
2. Limit the maximum size of GPT entry to 1k.

In current specification (2.10) the size of GPT entry is 128 *
2^n while n >= 0, and the size - 128 is reserved. 1k should be
sufficient enough for foreseen future.

PR:		266548
Discussed with:	imp
Reviewed by:	markj
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D36717
2022-10-18 11:03:02 -04:00
..
bde geom(4): Fix some of the "set but not used" warnings 2021-12-18 11:42:34 +00:00
cache GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
concat GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
eli geli: Add a chicken switch for unmapped I/O 2022-04-18 17:55:24 -04:00
gate geom_gate: Distinguish between classes of errors 2022-01-29 21:15:51 +11:00
journal Add a flags parameter to the ffs_sbget() function that reads UFS superblocks. 2022-07-30 22:51:38 -07:00
label Add a flags parameter to the ffs_sbget() function that reads UFS superblocks. 2022-07-30 22:51:38 -07:00
linux_lvm GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
mirror GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
mountver Make g_attach() return ENXIO for orphaned providers; update various 2020-10-18 16:24:08 +00:00
multipath GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
nop kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
part geom_part: Check number of GPT entries and size of GPT entry 2022-10-18 11:03:02 -04:00
raid kerneldump: remove physical from dump routines 2022-05-13 10:43:19 -03:00
raid3 GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
shsec GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
stripe GEOM: Set G_CF_DIRECT_SEND/RECEIVE for taste consumers. 2022-01-29 21:59:03 -05:00
union Clarify when GEOM utilities exit with success or failure. 2022-07-16 10:26:51 -07:00
uzip Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vinum vinum/geom_vinum_var.h: Fix missing linefeed in license. 2022-10-12 22:46:03 -05:00
virstor geom(4): Fix a common typo in a source code comment 2022-06-05 09:51:10 +02:00
zero geom(4): Mark all sysctls as CTLFLAG_MPSAFE. 2021-08-10 20:18:46 -04:00
geom_bsd_enc.c
geom_ccd.c sys/geom: Use C99 fixed-width integer types. 2021-12-28 09:41:51 -08:00
geom_ctl.c Clarify when GEOM utilities exit with success or failure. 2022-07-16 10:26:51 -07:00
geom_ctl.h
geom_dbg.h
geom_dev.c ses: don't panic if disk elements have really weird descriptors 2022-06-23 11:19:20 -06:00
geom_disk.c Delay GEOM disk_create() until CAM periph probe completes. 2022-07-14 16:17:36 -04:00
geom_disk.h Delay GEOM disk_create() until CAM periph probe completes. 2022-07-14 16:17:36 -04:00
geom_dump.c GEOM: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
geom_event.c Adjust g_waitidle() visibility and definition 2022-08-02 21:11:10 +03:00
geom_flashmap.c
geom_flashmap.h geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_int.h GEOM: Introduce partial confxml API 2022-03-12 11:55:52 -05:00
geom_io.c Adjust function definition in geom_io.c to avoid clang 15 warnings 2022-07-26 19:59:56 +02:00
geom_kern.c GEOM: Relax direct dispatch for GEOM threads. 2022-01-28 14:21:21 -05:00
geom_map.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
geom_redboot.c geom_map and geom_redboot: Remove unused ctlreq handler. 2020-07-26 22:30:01 +00:00
geom_slice.c
geom_slice.h
geom_subr.c Adjust function definition in geom_subr.c to avoid clang 15 warnings 2022-07-26 19:59:56 +02:00
geom_vfs.c g_vfs_done: Only report ENXIO once 2022-04-24 14:01:33 -06:00
geom_vfs.h
geom.h Adjust g_waitidle() visibility and definition 2022-08-02 21:11:10 +03:00
notes