Revision: 29788
          http://sourceforge.net/p/bibdesk/svn/29788
Author:   hofman
Date:     2025-11-13 16:16:51 +0000 (Thu, 13 Nov 2025)
Log Message:
-----------
don't use array and dictionary decoding methods for secure coding, as they 
apparently require secure decoding

Modified Paths:
--------------
    trunk/bibdesk/BDSKComplexString.m
    trunk/bibdesk/BDSKFilter.m
    trunk/bibdesk/BDSKServerInfo.m
    trunk/bibdesk/BDSKTreeNode.m
    trunk/bibdesk/BibItem.m

Modified: trunk/bibdesk/BDSKComplexString.m
===================================================================
--- trunk/bibdesk/BDSKComplexString.m   2025-11-13 10:33:43 UTC (rev 29787)
+++ trunk/bibdesk/BDSKComplexString.m   2025-11-13 16:16:51 UTC (rev 29788)
@@ -367,10 +367,7 @@
         self = [super init];
         if (self) {
             BDSKASSERT([coder isKindOfClass:[NSKeyedUnarchiver class]]);
-            if (@available(macOS 11.0, *))
-                nodes = [coder decodeArrayOfObjectsOfClass:[BDSKStringNode 
class] forKey:@"nodes"];
-            else
-                nodes = [coder decodeObjectOfClass:[NSArray class] 
forKey:@"nodes"];
+            nodes = [coder decodeObjectOfClass:[NSArray class] 
forKey:@"nodes"];
             isComplex = [coder decodeBoolForKey:@"complex"];
             isInherited = [coder decodeBoolForKey:@"inherited"];
             macroResolver = [[self class] macroResolverForUnarchiving];

Modified: trunk/bibdesk/BDSKFilter.m
===================================================================
--- trunk/bibdesk/BDSKFilter.m  2025-11-13 10:33:43 UTC (rev 29787)
+++ trunk/bibdesk/BDSKFilter.m  2025-11-13 16:16:51 UTC (rev 29788)
@@ -84,10 +84,7 @@
 - (instancetype)initWithCoder:(NSCoder *)decoder {
     self = [super init];
     if (self) {
-        if (@available(macOS 11.0, *))
-            conditions = [[NSMutableArray alloc] initWithArray:[decoder 
decodeArrayOfObjectsOfClass:[BDSKCondition class] forKey:@"conditions"]];
-        else
-            conditions = [[NSMutableArray alloc] initWithArray:[decoder 
decodeObjectOfClass:[NSArray class] forKey:@"conditions"]];
+        conditions = [[NSMutableArray alloc] initWithArray:[decoder 
decodeObjectOfClass:[NSArray class] forKey:@"conditions"]];
                conjunction = [decoder decodeIntegerForKey:@"conjunction"];
                group = nil;
        }

Modified: trunk/bibdesk/BDSKServerInfo.m
===================================================================
--- trunk/bibdesk/BDSKServerInfo.m      2025-11-13 10:33:43 UTC (rev 29787)
+++ trunk/bibdesk/BDSKServerInfo.m      2025-11-13 16:16:51 UTC (rev 29788)
@@ -156,10 +156,7 @@
         if ([self isEntrez] || [self isISI] || [self isDBLP]) {
             host = nil;
             port = nil;
-            if (@available(macOS 11.0, *))
-                options = [[decoder decodeDictionaryWithKeysOfClass:[NSString 
class] objectsOfClass:[NSString class] forKey:OPTIONS_KEY] mutableCopy];
-            else
-                options = [[decoder decodeObjectOfClass:[NSDictionary class] 
forKey:OPTIONS_KEY] mutableCopy];
+            options = [[decoder decodeObjectOfClass:[NSDictionary class] 
forKey:OPTIONS_KEY] mutableCopy];
             if ([options count] == 0)
                 options = nil;
             password = [[options objectForKey:PASSWORD_KEY] copy];
@@ -167,10 +164,7 @@
         } else if ([self isZoom] || [self isSRU]) {
             host = [decoder decodeObjectOfClass:[NSString class] 
forKey:HOST_KEY];
             port = [decoder decodeObjectOfClass:[NSString class] 
forKey:PORT_KEY];
-            if (@available(macOS 11.0, *))
-                options = [[decoder decodeDictionaryWithKeysOfClass:[NSString 
class] objectsOfClass:[NSString class] forKey:OPTIONS_KEY] mutableCopy];
-            else
-                options = [[decoder decodeObjectOfClass:[NSDictionary class] 
forKey:OPTIONS_KEY] mutableCopy];
+            options = [[decoder decodeObjectOfClass:[NSDictionary class] 
forKey:OPTIONS_KEY] mutableCopy];
             password = [[options objectForKey:PASSWORD_KEY] copy];
             [options removeObjectForKey:PASSWORD_KEY];
         } else {

Modified: trunk/bibdesk/BDSKTreeNode.m
===================================================================
--- trunk/bibdesk/BDSKTreeNode.m        2025-11-13 10:33:43 UTC (rev 29787)
+++ trunk/bibdesk/BDSKTreeNode.m        2025-11-13 16:16:51 UTC (rev 29788)
@@ -68,14 +68,8 @@
 - (instancetype)initWithCoder:(NSCoder *)coder;
 {
     if(self = [super init]){
-        if (@available(macOS 11.0, *))
-            children = [[NSMutableArray alloc] initWithArray:[coder 
decodeArrayOfObjectsOfClass:[BDSKTreeNode class] forKey:@"children"]];
-        else
-            children = [[NSMutableArray alloc] initWithArray:[coder 
decodeObjectOfClass:[NSArray class] forKey:@"children"]];
-        if (@available(macOS 11.0, *))
-            columnValues = [[NSMutableDictionary alloc] 
initWithDictionary:[coder decodeDictionaryWithKeysOfClasses:[NSSet 
setWithObject:[NSString class]] objectsOfClasses:[NSSet setWithObject:[NSObject 
class]] forKey:@"columnValues"]];
-        else
-            columnValues = [[NSMutableDictionary alloc] 
initWithDictionary:[coder decodeObjectOfClass:[NSDictionary class] 
forKey:@"columnValues"]];
+        children = [[NSMutableArray alloc] initWithArray:[coder 
decodeObjectOfClass:[NSArray class] forKey:@"children"]];
+        columnValues = [[NSMutableDictionary alloc] initWithDictionary:[coder 
decodeObjectOfClass:[NSDictionary class] forKey:@"columnValues"]];
         parent = [coder decodeObjectOfClass:[BDSKTreeNode class] 
forKey:@"parent"];
     }
     return self;

Modified: trunk/bibdesk/BibItem.m
===================================================================
--- trunk/bibdesk/BibItem.m     2025-11-13 10:33:43 UTC (rev 29787)
+++ trunk/bibdesk/BibItem.m     2025-11-13 16:16:51 UTC (rev 29788)
@@ -278,18 +278,12 @@
 - (instancetype)initWithCoder:(NSCoder *)coder{
     if([coder allowsKeyedCoding]){
         if(self = [super init]){
-            if (@available(macOS 11.0, *))
-                pubFields = [[NSMutableDictionary alloc] 
initWithDictionary:[coder decodeDictionaryWithKeysOfClass:[NSString class] 
objectsOfClass:[NSString class] forKey:@"pubFields"]];
-            else
-                pubFields = [[NSMutableDictionary alloc] 
initWithDictionary:[coder decodeObjectOfClass:[NSDictionary class] 
forKey:@"pubFields"]];
+            pubFields = [[NSMutableDictionary alloc] initWithDictionary:[coder 
decodeObjectOfClass:[NSDictionary class] forKey:@"pubFields"]];
             [self setCiteKeyString:[coder decodeObjectOfClass:[NSString class] 
forKey:@"citeKey"]];
             [self setPubTypeString:[coder decodeObjectOfClass:[NSString class] 
forKey:@"pubType"]];
             groups = [[NSMutableDictionary alloc] initWithCapacity:5];
             URLs = [[NSMutableDictionary alloc] initWithCapacity:5];
-            if (@available(macOS 11.0, *))
-                files = [[NSMutableArray alloc] initWithArray:[coder 
decodeArrayOfObjectsOfClass:[BDSKLinkedFile class] forKey:@"files"]];
-            else
-                files = [[NSMutableArray alloc] initWithArray:[coder 
decodeObjectOfClass:[NSArray class] forKey:@"files"]];
+            files = [[NSMutableArray alloc] initWithArray:[coder 
decodeObjectOfClass:[NSArray class] forKey:@"files"]];
             [files setValue:self forKey:@"delegate"];
             // set by the document, which we don't archive
             owner = nil;
@@ -510,11 +504,7 @@
     
     [NSString setMacroResolverForUnarchiving:aMacroResolver];
     
-    NSArray *pubs;
-    if (@available(macOS 11.0, *))
-        pubs = [unarchiver decodeArrayOfObjectsOfClass:[BibItem class] 
forKey:@"publications"];
-    else
-        pubs = [unarchiver decodeObjectOfClass:[NSArray class] 
forKey:@"publications"];
+    NSArray *pubs = [unarchiver decodeObjectOfClass:[NSArray class] 
forKey:@"publications"];
     
     [unarchiver finishDecoding];
     

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to