# caller must "local td", which will be set
local probeid=$1
- probeid="$domain,${probeid//[^-=.,_0-9A-Za-z]/%/},$id"
+ probeid="$domain,${probeid//[^-=:.,_0-9A-Za-z]/%},$id"
case $probeid in
- .*|*/*) fail "yikes, sanitisation bug!" ;;
+ .*|*/*) fail "yikes, sanitisation bug ($probeid) !" ;;
esac
td="$statedir/$probeid"
while read hn group id domain mx addr; do
if [ x"$hn" != x"X-WebSTUMP-Relay-Probe:" ]; then continue; fi
if [ x"$group" != x"$GROUP" ]; then continue; fi
+ case " $id $domain $mx $addr" in
+ */*|' '.*) fail "bad syntax" ;;
+ esac
local td
compute-td "mx=$mx,addr=$addr"
>"$td/ok" ||: