chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update SUSE rules
[elogind.git]
/
udev_utils_run.c
diff --git
a/udev_utils_run.c
b/udev_utils_run.c
index 31363588c86386da0302779575b879c38c7474dd..76a704c52cb19b93db15fe517f2b3171043708b8 100644
(file)
--- a/
udev_utils_run.c
+++ b/
udev_utils_run.c
@@
-84,16
+84,18
@@
int run_program(const char *command, const char *subsystem,
int devnull;
int i;
int devnull;
int i;
+ /* build argv from comand */
strlcpy(arg, command, sizeof(arg));
i = 0;
strlcpy(arg, command, sizeof(arg));
i = 0;
- if (strchr(arg, ' ')) {
+ if (strchr(arg, ' ')
!= NULL
) {
char *pos = arg;
char *pos = arg;
+
while (pos != NULL) {
if (pos[0] == '\'') {
/* don't separate if in apostrophes */
pos++;
argv[i] = strsep(&pos, "\'");
while (pos != NULL) {
if (pos[0] == '\'') {
/* don't separate if in apostrophes */
pos++;
argv[i] = strsep(&pos, "\'");
- while (pos && pos[0] == ' ')
+ while (pos
!= NULL
&& pos[0] == ' ')
pos++;
} else {
argv[i] = strsep(&pos, " ");
pos++;
} else {
argv[i] = strsep(&pos, " ");
@@
-102,13
+104,11
@@
int run_program(const char *command, const char *subsystem,
i++;
}
argv[i] = NULL;
i++;
}
argv[i] = NULL;
- info("'%s'", command);
} else {
argv[0] = arg;
} else {
argv[0] = arg;
- argv[1] = (char *) subsystem;
- argv[2] = NULL;
- info("'%s' '%s'", arg, argv[1]);
+ argv[1] = NULL;
}
}
+ info("'%s'", command);
/* prepare pipes from child to parent */
if (result || log) {
/* prepare pipes from child to parent */
if (result || log) {