RESOLVED FIXED 225781
[GPU Process] Ensure RemoteRenderingBackendProxy is restored to its original state when GPUP connection is closed
https://bugs.webkit.org/show_bug.cgi?id=225781
Summary [GPU Process] Ensure RemoteRenderingBackendProxy is restored to its original ...
Said Abou-Hallawa
Reported 2021-05-13 14:05:56 PDT
RemoteRenderingBackendProxy::gpuProcessConnectionDidClose() is supposed to do that. But some members of RemoteRenderingBackendProxy are not cleared in this function.
Attachments
Patch (10.51 KB, patch)
2021-05-13 14:32 PDT, Said Abou-Hallawa
no flags
Patch (9.25 KB, patch)
2021-05-14 16:09 PDT, Said Abou-Hallawa
no flags
Said Abou-Hallawa
Comment 1 2021-05-13 14:06:51 PDT
Said Abou-Hallawa
Comment 2 2021-05-13 14:32:42 PDT
Simon Fraser (smfr)
Comment 3 2021-05-13 14:37:22 PDT
Comment on attachment 428561 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428561&action=review > Source/WebKit/ChangeLog:27 > + No need for m_getPixelBufferSharedMemoryLength. The share memory length > + can be retrieved from SharedMemory::size(); Are you sure you're not undoing a security hardening here?
Said Abou-Hallawa
Comment 4 2021-05-13 15:08:17 PDT
Comment on attachment 428561 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428561&action=review >> Source/WebKit/ChangeLog:27 >> + can be retrieved from SharedMemory::size(); > > Are you sure you're not undoing a security hardening here? Can you please explain your point a little? I did not get it especially we have many data sizes in this context IPCHandle::dataSize IPCHandle::handle::m_size SharedMemory::m_size // which is copied form the IPCHandle::handle::m_size. What is the security hardening in adding a fourth one?
Simon Fraser (smfr)
Comment 5 2021-05-13 16:46:02 PDT
Comment on attachment 428561 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428561&action=review >>> Source/WebKit/ChangeLog:27 >>> + can be retrieved from SharedMemory::size(); >> >> Are you sure you're not undoing a security hardening here? > > Can you please explain your point a little? I did not get it especially we have many data sizes in this context > > IPCHandle::dataSize > IPCHandle::handle::m_size > SharedMemory::m_size // which is copied form the IPCHandle::handle::m_size. > > What is the security hardening in adding a fourth one? There's a lot of discussion in https://bugs.webkit.org/show_bug.cgi?id=223732 which added this code. It seems that what Myles checked in was different from the last patch on the bug. He should explain why the code is as it is.
Ryosuke Niwa
Comment 6 2021-05-13 16:58:32 PDT
Comment on attachment 428561 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428561&action=review >>>> Source/WebKit/ChangeLog:27 >>>> + can be retrieved from SharedMemory::size(); >>> >>> Are you sure you're not undoing a security hardening here? >> >> Can you please explain your point a little? I did not get it especially we have many data sizes in this context >> >> IPCHandle::dataSize >> IPCHandle::handle::m_size >> SharedMemory::m_size // which is copied form the IPCHandle::handle::m_size. >> >> What is the security hardening in adding a fourth one? > > There's a lot of discussion in https://bugs.webkit.org/show_bug.cgi?id=223732 which added this code. It seems that what Myles checked in was different from the last patch on the bug. He should explain why the code is as it is. This code runs in WebContent process. There is no need to harden what gets sent back from GPU process. In general, we trust stuff sent or replied from GPU process. Also, SharedMemory::size is always correct. mach_vm_map ensures that it is IPCHandle::dataSize could be arbitrary value, however, until SharedMemory::map is called since that's where we validate.
Said Abou-Hallawa
Comment 7 2021-05-14 16:09:44 PDT
EWS
Comment 8 2021-05-15 21:06:35 PDT
Committed r277562 (237790@main): <https://commits.webkit.org/237790@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 428678 [details].
Note You need to log in before you can comment on or make changes to this bug.