vm(apple): move scoped access for registry entry

Fixes #5617
This commit is contained in:
osy
2023-09-02 16:34:09 -07:00
parent a2040cecc3
commit 5c171e8628
2 changed files with 6 additions and 6 deletions
-6
View File
@@ -753,18 +753,14 @@ extension UTMAppleVirtualMachine {
registryEntry.sharedDirectories.removeAll(keepingCapacity: true)
for sharedDirectory in configShares {
if let url = sharedDirectory.directoryURL {
_ = url.startAccessingSecurityScopedResource()
let file = try UTMRegistryEntry.File(url: url, isReadOnly: sharedDirectory.isReadOnly)
registryEntry.sharedDirectories.append(file)
url.stopAccessingSecurityScopedResource()
}
}
for drive in configDrives {
if drive.isExternal, let url = drive.imageURL {
_ = url.startAccessingSecurityScopedResource()
let file = try UTMRegistryEntry.File(url: url, isReadOnly: drive.isReadOnly)
registryEntry.externalDrives[drive.id] = file
url.stopAccessingSecurityScopedResource()
}
}
// remove any unreferenced drives
@@ -773,9 +769,7 @@ extension UTMAppleVirtualMachine {
})
// save IPSW reference
if let url = config.system.boot.macRecoveryIpswURL {
_ = url.startAccessingSecurityScopedResource()
registryEntry.macRecoveryIpsw = try UTMRegistryEntry.File(url: url, isReadOnly: true)
url.stopAccessingSecurityScopedResource()
} else {
registryEntry.macRecoveryIpsw = nil
}
+6
View File
@@ -353,6 +353,12 @@ extension URL {
options.insert(.securityScopeAllowOnlyReadAccess)
}
#endif
let scopedAccess = startAccessingSecurityScopedResource()
defer {
if scopedAccess {
stopAccessingSecurityScopedResource()
}
}
return try self.bookmarkData(options: options,
includingResourceValuesForKeys: nil,
relativeTo: nil)