summaryrefslogtreecommitdiffstats
path: root/src/Daemon
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-02-04 19:22:38 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-02-04 19:22:38 +0100
commitbaacc3cadfd08293e6f46bd84ab322d0cb67bf10 (patch)
treed70258a228fc1d3cb8daa7e6d77ae3e678e96da7 /src/Daemon
parent3007949d04ec13ecf2ef0473b2d487f68b0d068f (diff)
downloadabrt-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/Daemon')
-rw-r--r--src/Daemon/MiddleWare.cpp11
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;
}