Closed Bug 1876818 Opened 2 years ago Closed 2 years ago

Footgun: deserialization arg type mismatch due to ClientWebGLContext caller vs HostWebGLContext callee

Categories

(Core :: Graphics: CanvasWebGL, task, P1)

task

Tracking

()

RESOLVED FIXED
124 Branch
Tracking Status
firefox124 --- fixed

People

(Reporter: jgilbert, Assigned: jgilbert)

Details

Attachments

(1 file)

I ran into this when I tried adding a std::variant<size_t,...> arg in HostWebGLContext, but invoked ClientWebGLContext::Run with size_t, and the std::variant serialization code didn't even get compiled, because it would directly serialize a size_t, but deser would try to read it as a variant! Oops!

Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7b7eadc28250 ClientWebGLContext::Run serialization now coerces to HostWebGLContext arg types. r=gfx-reviewers,lsalzman

Backed out for causing hazard-linux bustage in ClientWebGLContext.h.

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: TEST-UNEXPECTED-FAIL | hazards | unrooted '__temp_1' of type 'std::optional<JS::AutoCheckCannotGC>' live across GC call at dom/canvas/ClientWebGLContext.h:2320
Flags: needinfo?(jgilbert)
Flags: needinfo?(jgilbert)
Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5738e7d139a9 ClientWebGLContext::Run serialization now coerces to HostWebGLContext arg types. r=gfx-reviewers,lsalzman
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 124 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: