[PATCH] uefi: open efi_runtime driver with flag O_WRONLY | O_RDWR

Ivan Hu ivan.hu at canonical.com
Wed Nov 5 07:29:13 UTC 2014


The efi_runtime driver just doing ioctl() calls, using the flag
(O_WRONLY | O_RDWR) make sure it allows just ioctl() calls and NO accidental
read or writes to the device.

http://smackerelofopinion.blogspot.co.uk/2012/01/open-using-owronly-ordwr.html

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/uefi/uefirtmisc/uefirtmisc.c         |    2 +-
 src/uefi/uefirttime/uefirttime.c         |    2 +-
 src/uefi/uefirtvariable/uefirtvariable.c |    2 +-
 src/uefi/uefivarinfo/uefivarinfo.c       |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/uefi/uefirtmisc/uefirtmisc.c b/src/uefi/uefirtmisc/uefirtmisc.c
index bba468e..caafca5 100644
--- a/src/uefi/uefirtmisc/uefirtmisc.c
+++ b/src/uefi/uefirtmisc/uefirtmisc.c
@@ -53,7 +53,7 @@ static int uefirtmisc_init(fwts_framework *fw)
 		return FWTS_ABORTED;
 	}
 
-	fd = open("/dev/efi_runtime", O_RDONLY);
+	fd = open("/dev/efi_runtime", O_WRONLY | O_RDWR);
 	if (fd == -1) {
 		fwts_log_info(fw, "Cannot open efi_runtime driver. Aborted.");
 		return FWTS_ABORTED;
diff --git a/src/uefi/uefirttime/uefirttime.c b/src/uefi/uefirttime/uefirttime.c
index 896e13f..a3125bd 100644
--- a/src/uefi/uefirttime/uefirttime.c
+++ b/src/uefi/uefirttime/uefirttime.c
@@ -175,7 +175,7 @@ static int uefirttime_init(fwts_framework *fw)
 		return FWTS_ABORTED;
 	}
 
-	fd = open("/dev/efi_runtime", O_RDONLY);
+	fd = open("/dev/efi_runtime", O_WRONLY | O_RDWR);
 	if (fd == -1) {
 		fwts_log_info(fw, "Cannot open efi_runtime driver. Aborted.");
 		return FWTS_ABORTED;
diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c
index f0fd0ce..a19f835 100644
--- a/src/uefi/uefirtvariable/uefirtvariable.c
+++ b/src/uefi/uefirtvariable/uefirtvariable.c
@@ -99,7 +99,7 @@ static int uefirtvariable_init(fwts_framework *fw)
 		return FWTS_ABORTED;
 	}
 
-	fd = open("/dev/efi_runtime", O_RDONLY);
+	fd = open("/dev/efi_runtime", O_WRONLY | O_RDWR);
 	if (fd == -1) {
 		fwts_log_info(fw, "Cannot open efi_runtime driver. Aborted.");
 		return FWTS_ABORTED;
diff --git a/src/uefi/uefivarinfo/uefivarinfo.c b/src/uefi/uefivarinfo/uefivarinfo.c
index 41296c6..7310931 100644
--- a/src/uefi/uefivarinfo/uefivarinfo.c
+++ b/src/uefi/uefivarinfo/uefivarinfo.c
@@ -44,7 +44,7 @@ static int uefivarinfo_init(fwts_framework *fw)
 		return FWTS_ABORTED;
 	}
 
-	fd = open("/dev/efi_runtime", O_RDONLY);
+	fd = open("/dev/efi_runtime", O_WRONLY | O_RDWR);
 	if (fd == -1) {
 		fwts_log_info(fw, "Cannot open efi_runtime driver. Aborted.");
 		return FWTS_ABORTED;
-- 
1.7.9.5




More information about the fwts-devel mailing list