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 <noreply@anthropic.com>
This commit is contained in:
@@ -72,6 +72,9 @@ sub handle_test_connection {
|
|||||||
$err =~ s/\\/\\\\/g;
|
$err =~ s/\\/\\\\/g;
|
||||||
$err =~ s/"/\\"/g;
|
$err =~ s/"/\\"/g;
|
||||||
$err =~ s/\n/\\n/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"});
|
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/"/\\"/g;
|
$err =~ s/"/\\"/g;
|
||||||
$err =~ s/\n/\\n/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"});
|
print qq({"success":false,"message":"Connection failed: $err"});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,9 @@ sub handle_test_connection {
|
|||||||
$err =~ s/\\/\\\\/g;
|
$err =~ s/\\/\\\\/g;
|
||||||
$err =~ s/"/\\"/g;
|
$err =~ s/"/\\"/g;
|
||||||
$err =~ s/\n/\\n/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"});
|
print qq({"success":false,"message":"SSH connection failed: $err"});
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
Reference in New Issue
Block a user