diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c index ccb0685cedd..6db088f11ee 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #ifdef HAVE_SYS_IOCTL_H # include @@ -1026,6 +1027,14 @@ static BOOL get_volume_device_info( struct volume *volume ) if (!unix_device) return FALSE; +#ifdef __APPLE__ + if (access( unix_device, R_OK )) + { + WARN("Unable to open %s, not accessible\n", debugstr_a(unix_device)); + return FALSE; + } +#endif + if (!(name = wine_get_dos_file_name( unix_device ))) { ERR("Failed to convert %s to NT, err %u\n", debugstr_a(unix_device), GetLastError()); diff --git a/dlls/mountmgr.sys/diskarb.c b/dlls/mountmgr.sys/diskarb.c index 12da89d7688..25e0745372a 100644 --- a/dlls/mountmgr.sys/diskarb.c +++ b/dlls/mountmgr.sys/diskarb.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef HAVE_SYS_IOCTL_H # include #endif @@ -150,7 +151,8 @@ static void appeared_callback( DADiskRef disk, void *context ) else if (guid_ptr) add_volume( device, device, mount_point, DEVICE_HARDDISK_VOL, guid_ptr, NULL ); - if ((fd = open( device, O_RDONLY )) >= 0) + if (!access( device, R_OK ) && + (fd = open( device, O_RDONLY )) >= 0) { dk_scsi_identify_t dsi;