tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

bug1888727.js (759B)


      1 function test() {
      2    // Construct a structured clone of a random BigInt value.
      3    const n = 0xfeeddeadbeef2dadfeeddeadbeef2dadfeeddeadbeef2dadfeeddeadbeef2dadn;
      4    const s = serialize(n, [], {scope: 'DifferentProcess'});
      5    assertEq(deserialize(s), n);
      6 
      7    // Truncate it by chopping off the last 8 bytes.
      8    s.clonebuffer = s.arraybuffer.slice(0, -8);
      9 
     10    // Deserialization should now throw a catchable exception.
     11    try {
     12        deserialize(s);
     13        // The bug was throwing an uncatchable error, so this next assertion won't
     14        // be reached in either the buggy or fixed code.
     15        assertEq(true, false, "should have thrown truncation error");
     16    } catch (e) {
     17        assertEq(e.message.includes("truncated"), true);
     18    }
     19 }
     20 
     21 test();