tags +patch Hi again,
After some research I've made a patch for the issue based on the notify vulnerability patch on http://bugs.hylafax.org/bugzilla/show_bug.cgi?id=719 regards, Ernst Oudhof
--- util/notify.sh.in.orig 2004-12-30 19:38:03.000000000 +0100 +++ util/notify.sh.in 2006-01-10 00:28:38.332762319 +0100 @@ -172,8 +172,18 @@ eval `($AWK -F: ' function p(varname,val) { + # In shell scripts, there are no special characters in hard-quoted + # strings (quoted with (')). Single-quotes can't even be escaped + # inside such strings and must be put outside of them. We thus replace + # (') with ('\'') which terminates the current string, adds a single + # quote and starts a new string. + gsub(/\\047/, "\047\\\\\047\047", val); + # New lines in eval could cause problems so we escape them. As with + # single quotes above, we must first close the current string, add + # the escaped new line (double quoted) and start a new string. + gsub(/\n/, "\047\042\\\\n\042\047", val); # print out variable name and value so we can eval it in the shell - printf "%s=\"%s\"\n",varname,val + printf "%s=\\047%s\\047\n",varname,val } BEGIN { nfiles = 0; @@ -201,15 +211,9 @@ /^jobtype/ { p("jobtype", $2); } # status needs to be used in the shell as faxstatus since status is reserved word /^status/ { status = $0; sub("status:", "", status); - if (status ~ /\\\\$/) { - sub(/\\\\$/, "\\\\n", status); - while (getline > 0) { + while ($0 ~ /\\\\$/ && getline > 0) { + sub(/\\\\$/, "\\n", status); status = status $0; - gsub("*","",status); - sub(/\\\\$/, "\\\\n", status); - if ($0 !~ /\\\\$/) - break; - } } p("faxstatus", status); } /^resolution/ { p("resolution", $2); }