Skip to content

Commit

Permalink
Remove superclass loop when decoding ObjC classes from _WKRemoteObjec…
Browse files Browse the repository at this point in the history
…tRegistry on iOS

https://bugs.webkit.org/show_bug.cgi?id=255157
rdar://107758849

Reviewed by David Kilzer.

* Source/WebKit/Platform/Logging.h:
* Source/WebKit/Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(checkIfClassIsAllowed):

Canonical link: https://commits.webkit.org/262742@main
  • Loading branch information
achristensen07 committed Apr 8, 2023
1 parent 171dfb7 commit 17526d7
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 10 deletions.
1 change: 0 additions & 1 deletion Source/WebKit/Platform/Logging.h
Expand Up @@ -95,7 +95,6 @@ extern "C" {
M(RemoteLayerTree) \
M(Resize) \
M(ResourceLoadStatistics) \
M(RemoteObjectRegistry) \
M(Sandbox) \
M(ScrollAnimations) \
M(Scrolling) \
Expand Down
9 changes: 0 additions & 9 deletions Source/WebKit/Shared/API/Cocoa/WKRemoteObjectCoder.mm
Expand Up @@ -810,15 +810,6 @@ static void checkIfClassIsAllowed(WKRemoteObjectDecoder *decoder, Class objectCl
if (alwaysAllowedClasses().contains((__bridge CFTypeRef)objectClass))
return;

#if PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR) && !PLATFORM(MACCATALYST)
RELEASE_LOG_FAULT(RemoteObjectRegistry, "Unexpected class %s", NSStringFromClass(objectClass).UTF8String);
ASSERT_NOT_REACHED();
for (Class superclass = class_getSuperclass(objectClass); superclass; superclass = class_getSuperclass(superclass)) {
if (allowedClasses->contains((__bridge CFTypeRef)superclass))
return;
}
#endif

[NSException raise:NSInvalidUnarchiveOperationException format:@"Object of class \"%@\" is not allowed. Allowed classes are \"%@\"", objectClass, decoder.allowedClasses];
}

Expand Down

0 comments on commit 17526d7

Please sign in to comment.