[dpdk-dev] eal/linux: use more restrictive perms in hugedir

Message ID 1470840774-14793-1-git-send-email-robin.jarry@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Robin Jarry Aug. 10, 2016, 2:52 p.m. UTC
  There is no need for the page files to be readable (and executable) by
other users. This can be exploited by non-privileged users to access the
working memory of a DPDK app.

Open the files with 0600.

Signed-off-by: Robin Jarry <robin.jarry@6wind.com>
---
 lib/librte_eal/linuxapp/eal/eal_memory.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Thomas Monjalon Sept. 16, 2016, 12:51 p.m. UTC | #1
2016-08-10 16:52, Robin Jarry:
> There is no need for the page files to be readable (and executable) by
> other users. This can be exploited by non-privileged users to access the
> working memory of a DPDK app.
> 
> Open the files with 0600.
> 
> Signed-off-by: Robin Jarry <robin.jarry@6wind.com>

Applied, thanks

I thought there were some comments about this.
Tip of the day: August is a good month to avoid comments on your patch ;)
  

Patch

diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
index 41e0a9288765..3eb72657085c 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
@@ -442,7 +442,7 @@  map_all_hugepages(struct hugepage_file *hugepg_tbl,
 #endif
 
 		/* try to create hugepage file */
-		fd = open(hugepg_tbl[i].filepath, O_CREAT | O_RDWR, 0755);
+		fd = open(hugepg_tbl[i].filepath, O_CREAT | O_RDWR, 0600);
 		if (fd < 0) {
 			RTE_LOG(DEBUG, EAL, "%s(): open failed: %s\n", __func__,
 					strerror(errno));
@@ -581,7 +581,7 @@  remap_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
 				hugepg_tbl[page_idx].file_id);
 
 		/* try to create hugepage file */
-		fd = open(filepath, O_CREAT | O_RDWR, 0755);
+		fd = open(filepath, O_CREAT | O_RDWR, 0600);
 		if (fd < 0) {
 			RTE_LOG(ERR, EAL, "%s(): open failed: %s\n", __func__, strerror(errno));
 			return -1;