[git commit] pgrep: fix -x option

Denys Vlasenko vda.linux at googlemail.com
Thu Feb 28 11:42:38 UTC 2013

commit: http://git.busybox.net/busybox/commit/?id=47f8558eee4caa30078daaa669f37d7cc77163fd
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Because when -x is used (exact match), then we cannot compile the
regular expression with REG_NOSUB. The manual page regcomp(3) states
in section "Byte offsets":

    Unless REG_NOSUB was set for the compilation of the pattern
    buffer, it is possible to obtain substring match addressing

The problem was detected on an ARM system with glibc 2.16.
Signed-off-by: Bernhard Walle <bernhard at bwalle.de>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
 procps/pgrep.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/procps/pgrep.c b/procps/pgrep.c
index dc7ffff..7616027 100644
--- a/procps/pgrep.c
+++ b/procps/pgrep.c
@@ -128,7 +128,7 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
 	if (argv[0])
-		xregcomp(&re_buffer, argv[0], REG_EXTENDED | REG_NOSUB);
+		xregcomp(&re_buffer, argv[0], OPT_ANCHOR ? REG_EXTENDED : (REG_EXTENDED|REG_NOSUB);
 	matched_pid = 0;
 	cmd_last = NULL;

More information about the busybox-cvs mailing list