From bde1fe0822b8b51bc8fcbb21300a74289e586f78 Mon Sep 17 00:00:00 2001 From: shuki Date: Wed, 4 Mar 2026 03:03:55 +0200 Subject: [PATCH] Fix JSON control character escaping in connection test responses SSH stderr can contain \r and other control characters that break JSON parsing. Strip all control chars after escaping known ones. Co-Authored-By: Claude Opus 4.6 --- whm/gniza-whm/remotes.cgi | 6 ++++++ whm/gniza-whm/setup.cgi | 3 +++ 2 files changed, 9 insertions(+) diff --git a/whm/gniza-whm/remotes.cgi b/whm/gniza-whm/remotes.cgi index a226393..ccd86fe 100644 --- a/whm/gniza-whm/remotes.cgi +++ b/whm/gniza-whm/remotes.cgi @@ -72,6 +72,9 @@ sub handle_test_connection { $err =~ s/\\/\\\\/g; $err =~ s/"/\\"/g; $err =~ s/\n/\\n/g; + $err =~ s/\r/\\r/g; + $err =~ s/\t/\\t/g; + $err =~ s/[\x00-\x1f]//g; print qq({"success":false,"message":"SSH connection failed: $err"}); } } @@ -111,6 +114,9 @@ sub handle_test_connection { $err =~ s/\\/\\\\/g; $err =~ s/"/\\"/g; $err =~ s/\n/\\n/g; + $err =~ s/\r/\\r/g; + $err =~ s/\t/\\t/g; + $err =~ s/[\x00-\x1f]//g; print qq({"success":false,"message":"Connection failed: $err"}); } } diff --git a/whm/gniza-whm/setup.cgi b/whm/gniza-whm/setup.cgi index 03acb58..fe8546d 100644 --- a/whm/gniza-whm/setup.cgi +++ b/whm/gniza-whm/setup.cgi @@ -48,6 +48,9 @@ sub handle_test_connection { $err =~ s/\\/\\\\/g; $err =~ s/"/\\"/g; $err =~ s/\n/\\n/g; + $err =~ s/\r/\\r/g; + $err =~ s/\t/\\t/g; + $err =~ s/[\x00-\x1f]//g; print qq({"success":false,"message":"SSH connection failed: $err"}); } exit;