From d7b5f20e2f00d3c192d4ace22d1a44efe9e49f12 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Thu, 27 Dec 2018 22:03:13 +0100 Subject: [PATCH] Remove /usr/bin/env from cgi interpreter command, catch cgi exeution errors. --- addon/lib/rmupdate.tcl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/addon/lib/rmupdate.tcl b/addon/lib/rmupdate.tcl index 085f8f1..7fa9283 100644 --- a/addon/lib/rmupdate.tcl +++ b/addon/lib/rmupdate.tcl @@ -1469,10 +1469,18 @@ proc ::rmupdate::get_addon_info {{fetch_available_version 0} {fetch_download_url close $cfd set firstline [lindex [split $cgi_data "\n"] 0] regexp {^#!(.*)$} $firstline match cgi_interpreter + set cgi_interpreter [string map {"/usr/bin/env " ""} $cgi_interpreter] set addons(${id}::cgi) $cgi set addons(${id}::cgi_interpreter) $cgi_interpreter set ::env(QUERY_STRING) "" - set available_version [lindex [split [string map {"\r" ""} [exec $cgi_interpreter "$cgi"]] "\n\n"] end] + write_log 4 "exec cgi: ${cgi}" + if { [catch { + set tmp [string map {"\r" ""} [exec $cgi_interpreter "$cgi"]] + } errormsg] } { + write_log 2 "Error executing cgi ${cgi}: ${errormsg}" + } + set available_version [lindex [split $tmp "\n\n"] end] + write_log 4 "available_version of ${id}: ${available_version}" #set available_version [exec /usr/bin/wget "http://localhost${value}" --quiet --output-document=-] set addons(${id}::available_version) $available_version } @@ -1489,6 +1497,9 @@ proc ::rmupdate::get_addon_info {{fetch_available_version 0} {fetch_download_url set tmp [split $key "::"] set addon_id [lindex $tmp 0] set opt [lindex $tmp 2] + #if {$addon_id != "redmatic"} { + # continue + #} if {$opt == "update" && $addons($key) != "" && $addons(${addon_id}::available_version) != ""} { set available_version $addons(${addon_id}::available_version) #set url "http://localhost/$addons($key)?cmd=download&version=${available_version}"