diff options
author | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2022-07-02 14:17:18 -0700 |
---|---|---|
committer | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2022-07-02 14:24:42 -0700 |
commit | dfd057996b26420309c324ec844a5ba6dd07eda3 (patch) | |
tree | 010cc7c7050162ea441052c7bbe75151946a99cf | |
parent | 96e682f128a67b633ba4783a722b8972879139ce (diff) |
xquartz: Fix a possible crash when editing the Application menu due to mutaing immutable arrays
Crashing on exception: -[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object
Application Specific Backtrace 0:
0 CoreFoundation 0x00007ff80d2c5e9b __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff80d027e48 objc_exception_throw + 48
2 CoreFoundation 0x00007ff80d38167b _CFThrowFormattedException + 194
3 CoreFoundation 0x00007ff80d382a25 -[__NSCFArray removeObjectAtIndex:].cold.1 + 0
4 CoreFoundation 0x00007ff80d2e6c0b -[__NSCFArray replaceObjectAtIndex:withObject:] + 119
5 X11.bin 0x00000001003180f9 -[X11Controller tableView:setObjectValue:forTableColumn:row:] + 169
Fixes: https://github.com/XQuartz/XQuartz/issues/267
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-rw-r--r-- | hw/xquartz/X11Controller.m | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m index 3b55bb6a5..e9a939312 100644 --- a/hw/xquartz/X11Controller.m +++ b/hw/xquartz/X11Controller.m @@ -469,8 +469,11 @@ extern char *bundle_id_prefix; self.table_apps = table_apps; NSArray * const apps = self.apps; - if (apps != nil) - [table_apps addObjectsFromArray:apps]; + if (apps != nil) { + for (NSArray <NSString *> * row in apps) { + [table_apps addObject:row.mutableCopy]; + } + } columns = [apps_table tableColumns]; [[columns objectAtIndex:0] setIdentifier:@"0"]; |