mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-21 23:58:07 +02:00
Ensure that MurmurHash3_64.update
handles ArrayBuffer
input correctly, to avoid hash-collisions (issue 12533)
Different fonts incorrectly end up with *identical* hashes, despite having different /ToUnicode data. The issue, and it's very interesting that we've apparently not seen it before, appears to be caused by the fact that different /ToUnicode entries share the *same* underlying `ArrayBuffer`, which thus becomes problematic at the `const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);` line. The simplest solution thus seem to be to just *copy* the input, when it's an `ArrayBuffer`, rather than using it as-is. (Note that if we'd stringified the input, when calling `MurmurHash3_64.update`, the issue would also have been fixed. In this case, we're already creating an unique TypedArray.)
This commit is contained in:
parent
b2a4dacd31
commit
f2fa053c51
3 changed files with 11 additions and 1 deletions
1
test/pdfs/issue12533.pdf.link
Normal file
1
test/pdfs/issue12533.pdf.link
Normal file
|
@ -0,0 +1 @@
|
|||
https://web.archive.org/web/20201026152003/https://www.mass.gov/doc/covid-19-dashboard-october-25-2020/download
|
|
@ -2898,6 +2898,15 @@
|
|||
"link": false,
|
||||
"type": "eq"
|
||||
},
|
||||
{ "id": "issue12533",
|
||||
"file": "pdfs/issue12533.pdf",
|
||||
"md5": "9824904320f884eee20d4e4573008e6f",
|
||||
"rounds": 1,
|
||||
"link": true,
|
||||
"firstPage": 17,
|
||||
"lastPage": 18,
|
||||
"type": "eq"
|
||||
},
|
||||
{ "id": "issue1466",
|
||||
"file": "pdfs/issue1466.pdf",
|
||||
"md5": "8a8877432e5bb10cfd50d60488d947bb",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue