mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2025-06-24 19:51:23 +02:00
Build in the behavior to ignore decodeUTF8 errors
Makes the code clearer and more explicit in intent.
This commit is contained in:
parent
c3ef9ff557
commit
ce94d92e18
@ -1288,11 +1288,7 @@ export default class RFB extends EventTargetMixin {
|
|||||||
const name_length = this._sock.rQshift32();
|
const name_length = this._sock.rQshift32();
|
||||||
if (this._sock.rQwait('server init name', name_length, 24)) { return false; }
|
if (this._sock.rQwait('server init name', name_length, 24)) { return false; }
|
||||||
let name = this._sock.rQshiftStr(name_length);
|
let name = this._sock.rQshiftStr(name_length);
|
||||||
try {
|
name = decodeUTF8(name, true);
|
||||||
name = decodeUTF8(name);
|
|
||||||
} catch (e) {
|
|
||||||
// bypass no-empty
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._rfb_tightvnc) {
|
if (this._rfb_tightvnc) {
|
||||||
if (this._sock.rQwait('TightVNC extended server init header', 8, 24 + name_length)) { return false; }
|
if (this._sock.rQwait('TightVNC extended server init header', 8, 24 + name_length)) { return false; }
|
||||||
@ -1912,11 +1908,7 @@ export default class RFB extends EventTargetMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let name = this._sock.rQshiftStr(length);
|
let name = this._sock.rQshiftStr(length);
|
||||||
try {
|
name = decodeUTF8(name, true);
|
||||||
name = decodeUTF8(name);
|
|
||||||
} catch (e) {
|
|
||||||
// bypass no-empty
|
|
||||||
}
|
|
||||||
|
|
||||||
this._setDesktopName(name);
|
this._setDesktopName(name);
|
||||||
|
|
||||||
|
@ -7,8 +7,19 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Decode from UTF-8
|
// Decode from UTF-8
|
||||||
export function decodeUTF8(utf8string) {
|
export function decodeUTF8(utf8string, allowLatin1=false) {
|
||||||
return decodeURIComponent(escape(utf8string));
|
try {
|
||||||
|
return decodeURIComponent(escape(utf8string));
|
||||||
|
} catch (e) {
|
||||||
|
if (e instanceof URIError) {
|
||||||
|
if (allowLatin1) {
|
||||||
|
// If we allow Latin1 we can ignore any decoding fails
|
||||||
|
// and in these cases return the original string
|
||||||
|
return utf8string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Encode to UTF-8
|
// Encode to UTF-8
|
||||||
|
Loading…
x
Reference in New Issue
Block a user