Actually, I noted that things are even more weird:

The first 0x0 should likely act as a string terminator anyway... so the matched 
string shouldn't see any trailing newlines.

But even even these non-anchored patterns don't match:
$ pgrep --full --exact --euid "${LOGNAME}" --list-full -- "^ssh: 
${HOME}/\.ssh/mux/.+ \[mux]"
$ pgrep --full --exact --euid "${LOGNAME}" --list-full -- "^ssh: 
${HOME}/\.ssh/mux/.+ \["
$ pgrep --full --exact --euid "${LOGNAME}" --list-full -- "^ssh: 
${HOME}/\.ssh/mux/.+ .m"
$ pgrep --full --exact --euid "${LOGNAME}" --list-full -- "^ssh: 
${HOME}/\.ssh/mux/.+ .m."
$ pgrep --full --exact --euid "${LOGNAME}" --list-full -- "^ssh: 
${HOME}/\.ssh/mux/.+ .m.."

Interestingly though, this matches:
$ pgrep --full --exact --euid "${LOGNAME}" --list-full -- "^ssh: 
${HOME}/\.ssh/mux/.+ ."
34724 ssh: /home/calestyo/.ssh/mux/r...@lcg-lrz-admin.grid.lrz.de:22 [mux]     


And trying grep itself:
$ grep -E "^ssh: ${HOME}/\.ssh/mux/.+ \[mux]$" /proc/34724/cmdline
grep: /proc/34724/cmdline: binary file matches
$ grep -E "^ssh: ${HOME}/\.ssh/mux/.+ \[mux]" /proc/34724/cmdline
grep: /proc/34724/cmdline: binary file matches

and with text mode:
$ grep -aE "^ssh: ${HOME}/\.ssh/mux/.+ \[mux]$" /proc/34724/cmdline
$ grep -aE "^ssh: ${HOME}/\.ssh/mux/.+ \[mux]" /proc/34724/cmdline
ssh: /home/calestyo/.ssh/mux/r...@lcg-lrz-admin.grid.lrz.de:22 [mux]


Since I'm actually pretty sure that my script used to work before...
maybe the bug/change was somewhere else? Perhaps glibc?

Cheers,
Chris.

Reply via email to