Revision: 29839
          http://sourceforge.net/p/bibdesk/svn/29839
Author:   hofman
Date:     2025-11-17 23:07:29 +0000 (Mon, 17 Nov 2025)
Log Message:
-----------
use secure coding for font well

Modified Paths:
--------------
    trunk/bibdesk/BDSKFontWell.m

Modified: trunk/bibdesk/BDSKFontWell.m
===================================================================
--- trunk/bibdesk/BDSKFontWell.m        2025-11-17 16:27:43 UTC (rev 29838)
+++ trunk/bibdesk/BDSKFontWell.m        2025-11-17 23:07:29 UTC (rev 29839)
@@ -255,7 +255,7 @@
         }];
         
         NSDictionary *dict = @{BDSKNSFontCollectionFontDescriptors: @[[[self 
font] fontDescriptor]], NSFontSizeAttribute: [NSNumber numberWithDouble:[[self 
font] pointSize]]};
-        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dict 
requiringSecureCoding:NO error:NULL];
+        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dict 
requiringSecureCoding:YES error:NULL];
         NSPasteboardItem *item = [[NSPasteboardItem alloc] init];
         [item setData:data 
forType:UTIForNSPboardType(BDSKNSFontPanelDescriptorsPboardType)];
         
@@ -304,13 +304,7 @@
     @try {
         if ([type isEqualToString:BDSKNSFontPanelDescriptorsPboardType]) {
             NSData *data = [pboard dataForType:type];
-            NSDictionary *dict = nil;
-            if (data) {
-                NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] 
initForReadingFromData:data error:NULL];
-                [unarchiver setRequiresSecureCoding:NO];
-                dict = [unarchiver 
decodeObjectForKey:NSKeyedArchiveRootObjectKey];
-                [unarchiver finishDecoding];
-            }
+            NSDictionary *dict = [data isKindOfClass:[NSData class]] ? 
[NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet 
setWithObjects:[NSDictionary class], [NSString class], [NSNumber class], 
[NSArray class], [NSFontDescriptor class], nil] fromData:data error:NULL] : nil;
             if ([dict isKindOfClass:[NSDictionary class]]) {
                 NSArray *fontDescriptors = [dict 
objectForKey:BDSKNSFontCollectionFontDescriptors];
                 NSFontDescriptor *fontDescriptor = ([fontDescriptors 
isKindOfClass:[NSArray class]] && [fontDescriptors count]) ? [fontDescriptors 
objectAtIndex:0] : nil;

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