mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
efipart: Support an arbitrary number of partitions
Don't crash if the user has more than 31 of them. A follow-up to r298230. Reviewed by: allanjude Relnotes: maybe Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D6212
This commit is contained in:
parent
148ed57165
commit
3d5b6ffbf8
1 changed files with 6 additions and 5 deletions
|
|
@ -65,14 +65,12 @@ struct devsw efipart_dev = {
|
|||
/*
|
||||
* info structure to support bcache
|
||||
*/
|
||||
#define MAXPDDEV 31 /* see MAXDEV in libi386.h */
|
||||
|
||||
static struct pdinfo
|
||||
{
|
||||
struct pdinfo {
|
||||
int pd_unit; /* unit number */
|
||||
int pd_open; /* reference counter */
|
||||
void *pd_bcache; /* buffer cache data */
|
||||
} pdinfo [MAXPDDEV];
|
||||
};
|
||||
static struct pdinfo *pdinfo;
|
||||
static int npdinfo = 0;
|
||||
|
||||
#define PD(dev) (pdinfo[(dev)->d_unit])
|
||||
|
|
@ -109,6 +107,9 @@ efipart_init(void)
|
|||
nout = 0;
|
||||
|
||||
bzero(aliases, nin * sizeof(EFI_HANDLE));
|
||||
pdinfo = malloc(nin * sizeof(*pdinfo));
|
||||
if (pdinfo == NULL)
|
||||
return (ENOMEM);
|
||||
|
||||
for (n = 0; n < nin; n++) {
|
||||
status = BS->HandleProtocol(hin[n], &devpath_guid,
|
||||
|
|
|
|||
Loading…
Reference in a new issue