Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin/sysinst PR bin/54944: explicitly reject GPT protect...
details: https://anonhg.NetBSD.org/src/rev/b6af55895a4e
branches: trunk
changeset: 744566:b6af55895a4e
user: martin <martin%NetBSD.org@localhost>
date: Thu Feb 06 18:07:22 2020 +0000
description:
PR bin/54944: explicitly reject GPT protective MBRs.
diffstat:
usr.sbin/sysinst/mbr.c | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diffs (39 lines):
diff -r f42ee40d8d10 -r b6af55895a4e usr.sbin/sysinst/mbr.c
--- a/usr.sbin/sysinst/mbr.c Thu Feb 06 16:28:10 2020 +0000
+++ b/usr.sbin/sysinst/mbr.c Thu Feb 06 18:07:22 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mbr.c,v 1.30 2020/01/27 21:21:22 martin Exp $ */
+/* $NetBSD: mbr.c,v 1.31 2020/02/06 18:07:22 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -156,6 +156,8 @@
struct disk_part_free_space *result, size_t max_num_result,
daddr_t min_size, daddr_t align, daddr_t lower_bound, daddr_t ignore);
+static size_t mbr_type_from_gen_desc(const struct part_type_desc *desc);
+
/*
* Notes on the extended partition editor.
*
@@ -999,6 +1001,20 @@
return NULL;
}
mbr_calc_free_space(parts);
+ if (parts->dp.num_part == 1 &&
+ parts->dp.free_space < parts->ptn_alignment) {
+ struct disk_part_info info;
+
+ /*
+ * Check if this is a GPT protective MBR
+ */
+ if (parts->dp.pscheme->get_part_info(&parts->dp, 0, &info)
+ && info.nat_type != NULL
+ && mbr_type_from_gen_desc(info.nat_type) == 0xEE) {
+ parts->dp.pscheme->free(&parts->dp);
+ return NULL;
+ }
+ }
return &parts->dp;
}
Home |
Main Index |
Thread Index |
Old Index