diff --git a/OpenCloudSDK/Vaults/OCVault.m b/OpenCloudSDK/Vaults/OCVault.m index 1e10f2ff..71f9c6b6 100644 --- a/OpenCloudSDK/Vaults/OCVault.m +++ b/OpenCloudSDK/Vaults/OCVault.m @@ -93,6 +93,8 @@ - (instancetype)init - (instancetype)initWithBookmark:(OCBookmark *)bookmark { + if (bookmark.uuid == nil) { return nil; } // nil uuid would later crash rootURLForUUID: via URLByAppendingPathComponent:nil; reject the construction up front + if ((self = [super init]) != nil) { _bookmark = bookmark; @@ -112,6 +114,8 @@ - (instancetype)initWithBookmark:(OCBookmark *)bookmark + (NSURL *)rootURLForUUID:(NSUUID *)uuid { + if (uuid == nil) { return nil; } // rootPathRelativeToGroupContainerForVaultUUID: returns uuid.UUIDString which would be nil; URLByAppendingPathComponent:nil raises NSInvalidArgumentException → SIGABRT in FileProvider extension + return [[[[OCAppIdentity sharedAppIdentity] appGroupContainerURL] URLByAppendingPathComponent:OCVaultPathVaults] URLByAppendingPathComponent:[OCVault rootPathRelativeToGroupContainerForVaultUUID:uuid]]; }