4 ms·
> My point was that only I know what my intent was. [...] In the end, I'll need to do it myself, since I know what I want. I think we're in violent agreement h
by a1369209993 4y ago
> My point was that only I know what my intent was. [...] In the end, I'll need to do it myself, since I know what I want.
I think we're in violent agreement here; my point was that the autoquoter is superfluous, since the command in your previous comment already does what
> his (very cool) autoquoter [supposedly] allows
even without a autoquoter.
> Utility functions like shell_escape() would be nice
Note that in this case you specifically do not want shell_escape(). You're trying to produce awk code that evaluates to a given string, and that requires knowing awk syntax, not shell syntax; if you escape according to shell syntax, a attacker may be able to find a string where the shell expression for that string, when interpreted as awk code, does something other than evalute to a string.
You could have a generic_escape() function that (say) replaced any non-alphanumeric byte with '\xHH' or '\B' (for 'B'==0xHH), but there will always some language where whatever generic strategy you picked doesn't work.
$ echo "\x3E"
x3E # shell doesn't accept \xHH
$ echo '12+3<45' | grep -oE '\<.' | paste -sd' '
1 3 4 # posix ERE doesn't accept \B