summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2015-11-11 15:39:18 +0000
committerkrw <krw@openbsd.org>2015-11-11 15:39:18 +0000
commit5fa0bea9834133863c25c99537167ce695b49c56 (patch)
tree5a9bd6c6d535cb808c1150083e4ac6cea2315641
parentneeds pledge "getpw" also (diff)
downloadwireguard-openbsd-5fa0bea9834133863c25c99537167ce695b49c56.tar.xz
wireguard-openbsd-5fa0bea9834133863c25c99537167ce695b49c56.zip
Display full disk size when editing GPT, not the truncated MBR size. Display
'disk too large' message only when no GPT is found. Problems found, fix tested and ok naddy@.
-rw-r--r--sbin/fdisk/disk.c4
-rw-r--r--sbin/fdisk/fdisk.c5
-rw-r--r--sbin/fdisk/gpt.c4
3 files changed, 7 insertions, 6 deletions
diff --git a/sbin/fdisk/disk.c b/sbin/fdisk/disk.c
index cf0aef6aab4..d6829094fb3 100644
--- a/sbin/fdisk/disk.c
+++ b/sbin/fdisk/disk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disk.c,v 1.48 2015/08/27 20:58:27 krw Exp $ */
+/* $OpenBSD: disk.c,v 1.49 2015/11/11 15:39:18 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -74,8 +74,6 @@ DISK_getlabelgeometry(void)
if (sz > UINT32_MAX) {
disk.cylinders = UINT32_MAX / spc;
disk.size = disk.cylinders * spc;
- warnx("disk too large (%llu sectors)."
- " size truncated.", sz);
} else
disk.size = sz;
unit_types[SECTORS].conversion = dl.d_secsize;
diff --git a/sbin/fdisk/fdisk.c b/sbin/fdisk/fdisk.c
index 450d41edd19..e19396bfbc7 100644
--- a/sbin/fdisk/fdisk.c
+++ b/sbin/fdisk/fdisk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fdisk.c,v 1.79 2015/10/26 15:08:26 krw Exp $ */
+/* $OpenBSD: fdisk.c,v 1.80 2015/11/11 15:39:18 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -166,6 +166,9 @@ main(int argc, char *argv[])
if (GPT_get_gpt()) {
memset(&gh, 0, sizeof(gh));
memset(&gp, 0, sizeof(gp));
+ if (DL_GETDSIZE(&dl) > UINT32_MAX)
+ warnx("disk too large (%llu sectors). size truncated.",
+ (unsigned long long)DL_GETDSIZE(&dl));
}
if (c_arg | h_arg | s_arg) {
diff --git a/sbin/fdisk/gpt.c b/sbin/fdisk/gpt.c
index 7f37628c16f..968ca5f8985 100644
--- a/sbin/fdisk/gpt.c
+++ b/sbin/fdisk/gpt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gpt.c,v 1.2 2015/10/26 15:08:26 krw Exp $ */
+/* $OpenBSD: gpt.c,v 1.3 2015/11/11 15:39:18 krw Exp $ */
/*
* Copyright (c) 2015 Markus Muller <mmu@grummel.net>
* Copyright (c) 2015 Kenneth R Westerback <krw@openbsd.org>
@@ -242,7 +242,7 @@ GPT_print(char *units)
free(guidstr);
u = unit_lookup(units);
- size = ((double)disk.size * secsize) / unit_types[u].conversion;
+ size = ((double)DL_GETDSIZE(&dl) * secsize) / unit_types[u].conversion;
printf("[%.0f ", size);
if (u == SECTORS && secsize != DEV_BSIZE)
printf("%d-byte ", secsize);