summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2011-03-11 21:08:25 +0000
committerkrw <krw@openbsd.org>2011-03-11 21:08:25 +0000
commit9b0166348a88ba7cf9361eccf3ed8f6744450bf6 (patch)
treecf468dc6ab05c20d9b4d4e2d747b9b4f7b83104c
parentAdd a non-standard option that affects the output TZ only. The input (for (diff)
downloadwireguard-openbsd-9b0166348a88ba7cf9361eccf3ed8f6744450bf6.tar.xz
wireguard-openbsd-9b0166348a88ba7cf9361eccf3ed8f6744450bf6.zip
Zap stack garbage before passing buffer to biosd_io(), which may
be lied to by the BIOS about successfully reading data. ok deraadt@ weingart@
-rw-r--r--sys/arch/amd64/stand/libsa/biosdev.c3
-rw-r--r--sys/arch/i386/stand/libsa/biosdev.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/amd64/stand/libsa/biosdev.c b/sys/arch/amd64/stand/libsa/biosdev.c
index e25c7896ff4..2a111a9c918 100644
--- a/sys/arch/amd64/stand/libsa/biosdev.c
+++ b/sys/arch/amd64/stand/libsa/biosdev.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: biosdev.c,v 1.10 2011/03/08 17:24:31 krw Exp $ */
+/* $OpenBSD: biosdev.c,v 1.11 2011/03/11 21:08:25 krw Exp $ */
/*
* Copyright (c) 1996 Michael Shalayeff
@@ -358,6 +358,7 @@ findopenbsd(bios_diskinfo_t *bd, daddr64_t mbroff, const char **err, int *n)
}
/* Read MBR */
+ bzero(&mbr, sizeof(mbr));
error = biosd_io(F_READ, bd, mbroff, 1, &mbr);
if (error) {
*err = biosdisk_err(error);
diff --git a/sys/arch/i386/stand/libsa/biosdev.c b/sys/arch/i386/stand/libsa/biosdev.c
index 38fa6e66060..ed35066079c 100644
--- a/sys/arch/i386/stand/libsa/biosdev.c
+++ b/sys/arch/i386/stand/libsa/biosdev.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: biosdev.c,v 1.78 2011/03/08 17:24:31 krw Exp $ */
+/* $OpenBSD: biosdev.c,v 1.79 2011/03/11 21:08:25 krw Exp $ */
/*
* Copyright (c) 1996 Michael Shalayeff
@@ -361,6 +361,7 @@ findopenbsd(bios_diskinfo_t *bd, daddr64_t mbroff, const char **err, int *n)
}
/* Read MBR */
+ bzero(&mbr, sizeof(mbr));
error = biosd_io(F_READ, bd, mbroff, 1, &mbr);
if (error) {
*err = biosdisk_err(error);