Fix crash with too large clipboard data
If too much text is copied in the session, String.fromCharCode.apply() would crash in Safari on macOS and Chrome on Linux. This commit fixes this issue by avoiding apply() altogether. Also added test to cover this issue.
This commit is contained in:
committed by
Lauri Kasanen
parent
888f24e7af
commit
b173c8854a
@@ -1674,7 +1674,11 @@ export default class RFB extends EventTargetMixin {
|
||||
streamInflator.setInput(null);
|
||||
|
||||
if (textData !== null) {
|
||||
textData = String.fromCharCode.apply(null, textData);
|
||||
let tmpText = "";
|
||||
for (let i = 0; i < textData.length; i++) {
|
||||
tmpText += String.fromCharCode(textData[i]);
|
||||
}
|
||||
textData = tmpText;
|
||||
|
||||
textData = decodeUTF8(textData);
|
||||
if ((textData.length > 0) && "\0" === textData.charAt(textData.length - 1)) {
|
||||
|
||||
Reference in New Issue
Block a user