Changeset 269751 in webkit


Ignore:
Timestamp:
Nov 12, 2020 2:12:21 PM (3 years ago)
Author:
pvollan@apple.com
Message:

[iOS] IOKit sandbox violation when enabling all GPU runtime flags
https://bugs.webkit.org/show_bug.cgi?id=218820
<rdar://problem/71296116>

Reviewed by Brent Fulgham.

When enabling all GPU runtime flags on iOS, there is an iokit-open sandbox violation for the IOKit class AGXDeviceUserClient
in the WebContent process. When all GPU runtime flags are enabled, IOKit extensions are not provided to the WebContent process,
which should then fall back to a set of rules allowing use of these IOKit classes, with logging. There seems to be a problem
with the fallback for this specific IOKit class, which this patch addresses by adding an extra requirement to the rule. The
extra requirement is that IOKit extensions have not been provided for these IOKit classes.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r269750 r269751  
     12020-11-12  Per Arne Vollan  <pvollan@apple.com>
     2
     3        [iOS] IOKit sandbox violation when enabling all GPU runtime flags
     4        https://bugs.webkit.org/show_bug.cgi?id=218820
     5        <rdar://problem/71296116>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        When enabling all GPU runtime flags on iOS, there is an iokit-open sandbox violation for the IOKit class AGXDeviceUserClient
     10        in the WebContent process. When all GPU runtime flags are enabled, IOKit extensions are not provided to the WebContent process,
     11        which should then fall back to a set of rules allowing use of these IOKit classes, with logging. There seems to be a problem
     12        with the fallback for this specific IOKit class, which this patch addresses by adding an extra requirement to the rule. The
     13        extra requirement is that IOKit extensions have not been provided for these IOKit classes.
     14
     15        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
     16
    1172020-11-12  Chris Dumez  <cdumez@apple.com>
    218
  • trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb

    r269444 r269751  
    472472(with-filter (system-attribute apple-internal)
    473473  (mobile-preferences-read "com.apple.PrototypeTools"))
    474 
    475 (allow iokit-open (with report) (with telemetry-backtrace)
    476     (iokit-user-client-class "IOMobileFramebufferUserClient")
    477     (iokit-user-client-class "AGXDeviceUserClient")
    478     (iokit-user-client-class "AppleJPEGDriverUserClient")
    479     (iokit-user-client-class "IOSurfaceAcceleratorClient")
    480     (iokit-user-client-class "IOSurfaceRootUserClient")
    481 )
    482 
    483 (allow iokit-open (with report) (with telemetry-backtrace)
    484     (iokit-connection "IOGPU")
    485 )
    486474
    487475(with-elevated-precedence
     
    982970(deny mach-lookup (with telemetry-backtrace)
    983971    (global-name "com.apple.mobilegestalt.xpc")
     972)
     973
     974;; FIXME: This is just for logging. Remove when the GPU process is enabled by default.
     975(allow iokit-open (with report) (with telemetry-backtrace)
     976    (require-all
     977        (require-not (extension "com.apple.webkit.extension.iokit"))
     978        (iokit-user-client-class
     979            "IOMobileFramebufferUserClient"
     980            "AGXDeviceUserClient"
     981            "AppleJPEGDriverUserClient"
     982            "IOSurfaceAcceleratorClient"
     983            "IOSurfaceRootUserClient"
     984        )
     985    )
     986)
     987
     988(allow iokit-open (with report) (with telemetry-backtrace)
     989    (require-all
     990        (require-not (extension "com.apple.webkit.extension.iokit"))
     991        (iokit-connection "IOGPU")
     992    )
    984993)
    985994
Note: See TracChangeset for help on using the changeset viewer.