From 40cbf171efee048cd28a69e791b2ebac38cad3c2 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 9 Apr 2013 23:35:57 +0200 Subject: [PATCH] packagefs: don't dup() the packages directory FD Volume::_AddInitialPackagesFromDirectory(): Use openat() instead of dup() to get a FD for the packages directory. Currently our fdopendir() implementation doesn't use it directly anyway, but in theory it could and would then change the state of the original FD. --- src/add-ons/kernel/file_systems/packagefs/Volume.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/file_systems/packagefs/Volume.cpp b/src/add-ons/kernel/file_systems/packagefs/Volume.cpp index 21bc96fb5b..2e7af7d2e7 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Volume.cpp @@ -853,9 +853,9 @@ status_t Volume::_AddInitialPackagesFromDirectory() { // iterate through the dir and create packages - int fd = dup(fPackagesDirectory->DirectoryFD()); + int fd = openat(fPackagesDirectory->DirectoryFD(), ".", O_RDONLY); if (fd < 0) { - ERROR("Failed to dup() packages directory FD: %s\n", strerror(errno)); + ERROR("Failed to open packages directory: %s\n", strerror(errno)); RETURN_ERROR(errno); }