From 91373df27d3147c0eec1b96711efe7e4c6309f09 Mon Sep 17 00:00:00 2001 From: kitadmin Date: Thu, 23 Jul 2026 01:57:56 +0000 Subject: [PATCH] fix: sanitize newlines in telemetry output for valid JSON - ipgeo_gps: pipe curl output through tr -d to strip newlines - _ping_iface: pipe printf output through tr -d for newline safety Co-Authored-By: Claude Opus 4.8 --- .../files/usr/lib/busrouter/telemetry-synology.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/kit-busrouter/files/usr/lib/busrouter/telemetry-synology.sh b/package/kit-busrouter/files/usr/lib/busrouter/telemetry-synology.sh index 96c8647..4fee7d5 100755 --- a/package/kit-busrouter/files/usr/lib/busrouter/telemetry-synology.sh +++ b/package/kit-busrouter/files/usr/lib/busrouter/telemetry-synology.sh @@ -141,7 +141,7 @@ eyeride_gps() { # Query ip-api.com for approximate location. Emits 'lat lon fix'; exit 1 on failure. ipgeo_gps() { - _resp=$(curl -s --connect-timeout 5 "http://ip-api.com/json/" 2>/dev/null) || return 1 + _resp=$(curl -s --connect-timeout 5 "http://ip-api.com/json/" 2>/dev/null | tr -d '\n\r') || return 1 [ -n "$_resp" ] || return 1 _lat=$(_json_get_num "$_resp" "lat") @@ -222,7 +222,7 @@ _ping_iface() { # Extract loss percentage: "3 packets transmitted, 3 received, 0% packet loss" _loss=$(echo "$_out" | sed -n 's/.* \([0-9]*\)% packet loss.*/\1/p') [ -z "$_loss" ] && _loss="null" - echo "${_avg} ${_loss}" + printf '%s %s\n' "${_avg}" "${_loss}" | tr -d '\n\r' } # Compute simple WAN score from latency and loss (0-100, higher = better).