diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-02-04 19:22:38 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-02-04 19:22:38 +0100 |
commit | baacc3cadfd08293e6f46bd84ab322d0cb67bf10 (patch) | |
tree | d70258a228fc1d3cb8daa7e6d77ae3e678e96da7 /src | |
parent | 3007949d04ec13ecf2ef0473b2d487f68b0d068f (diff) | |
download | abrt-baacc3cadfd08293e6f46bd84ab322d0cb67bf10.tar.gz abrt-baacc3cadfd08293e6f46bd84ab322d0cb67bf10.tar.xz abrt-baacc3cadfd08293e6f46bd84ab322d0cb67bf10.zip |
abrtd: handle "perl -w /usr/bin/script" too
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/Daemon/MiddleWare.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp index 2786938d..c3f9061a 100644 --- a/src/Daemon/MiddleWare.cpp +++ b/src/Daemon/MiddleWare.cpp @@ -566,13 +566,19 @@ void LoadOpenGPGPublicKey(const char* key) static char *get_argv1_if_full_path(const char* cmdline) { char *argv1 = (char*) strchr(cmdline, ' '); - if (argv1 != NULL) + while (argv1 != NULL) { /* we found space in cmdline, so it might contain * path to some script like: - * /usr/bin/python /usr/bin/system-control-network + * /usr/bin/python [-XXX] /usr/bin/system-control-network */ argv1++; + if (*argv1 == '-') + { + /* looks like -XXX in "perl -XXX /usr/bin/script.pl", skip */ + argv1 = strchr(argv1, ' '); + continue; + } /* if the string following the space doesn't start * with '/' it's probably not a full path to script * and we can't use it to determine the package name @@ -584,6 +590,7 @@ static char *get_argv1_if_full_path(const char* cmdline) int len = strchrnul(argv1, ' ') - argv1; /* cut the cmdline arguments */ argv1 = xstrndup(argv1, len); + break; } return argv1; } |