[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
    information.

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)
 		bb_show_usage();
 
 	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