WebKit Bugzilla
Attachment 346814 Details for
Bug 188429
: Prevent collectScreenProperties from crashing Base System
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188429-20180808200652.patch (text/plain), 2.52 KB, created by
Justin Fan
on 2018-08-08 20:06:52 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Justin Fan
Created:
2018-08-08 20:06:52 PDT
Size:
2.52 KB
patch
obsolete
>Subversion Revision: 234659 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index ec38d74d5e8ffb0b4428d55ad0a2e572adf60074..fd824aecb408b348043326ea03ef67bb120d8046 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2018-08-08 Justin Fan <justin_fan@apple.com> >+ >+ Prevent collectScreenProperties from crashing Base System >+ https://bugs.webkit.org/show_bug.cgi?id=188429 >+ <rdar://problem/43075662> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adding some error-checking and early returns to further prevent calling CGLDescribeRenderer with invalid parameters. >+ >+ Existing WebGL tests should cover; no expected change in behavior. Crash happened primarily on Base System. >+ >+ * platform/mac/PlatformScreenMac.mm: >+ (WebCore::gpuIDForDisplayMask): >+ > 2018-08-07 Ryan Haddad <ryanhaddad@apple.com> > > Unreviewed, suppress warnings to fix the build. >diff --git a/Source/WebCore/platform/mac/PlatformScreenMac.mm b/Source/WebCore/platform/mac/PlatformScreenMac.mm >index e78434f31e5b583fd5f0fc91527779704b8da5ff..fe52c51f9636149054662b58b07e39e563a0cb84 100644 >--- a/Source/WebCore/platform/mac/PlatformScreenMac.mm >+++ b/Source/WebCore/platform/mac/PlatformScreenMac.mm >@@ -199,24 +199,28 @@ IORegistryGPUID gpuIDForDisplay(PlatformDisplayID displayID) > > IORegistryGPUID gpuIDForDisplayMask(GLuint displayMask) > { >- GLint numRenderers; >- CGLRendererInfoObj rendererInfo; >+ GLint numRenderers = 0; >+ CGLRendererInfoObj rendererInfo = nullptr; > CGLError error = CGLQueryRendererInfo(displayMask, &rendererInfo, &numRenderers); >- ASSERT(error == kCGLNoError); >+ if (!numRenderers || !rendererInfo || error != kCGLNoError) >+ return 0; > > // The 0th renderer should not be the software renderer. > GLint isAccelerated; > error = CGLDescribeRenderer(rendererInfo, 0, kCGLRPAccelerated, &isAccelerated); >- ASSERT(error == kCGLNoError); >- ASSERT(isAccelerated); >+ if (!isAccelerated || error != kCGLNoError) >+ return 0; > >- GLint gpuIDLow; >- GLint gpuIDHigh; >+ GLint gpuIDLow = 0; >+ GLint gpuIDHigh = 0; > > error = CGLDescribeRenderer(rendererInfo, 0, kCGLRPRegistryIDLow, &gpuIDLow); >- ASSERT(error == kCGLNoError); >+ if (error != kCGLNoError) >+ return 0; >+ > error = CGLDescribeRenderer(rendererInfo, 0, kCGLRPRegistryIDHigh, &gpuIDHigh); >- ASSERT(error == kCGLNoError); >+ if (error != kCGLNoError) >+ return 0; > > return (IORegistryGPUID) gpuIDHigh << 32 | gpuIDLow; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188429
:
346812
| 346814