mirror of
https://github.com/troglobit/finit.git
synced 2026-10-25 12:04:36 +00:00
logit: avoid modifying argv[] strings
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
d4358ed3f7
commit
d25c1d5564
1 file changed
+14
-5
+14
-5
@@ -98,29 +98,38 @@ static int logit(int level, char *buf, size_t len)
|
||||
|
||||
static int parse_prio(char *arg, int *f, int *l)
|
||||
{
|
||||
char *ptr;
|
||||
char *duparg = strdup(arg);
|
||||
char *ptr, *prio;
|
||||
|
||||
ptr = strchr(arg, '.');
|
||||
if (!duparg)
|
||||
prio = arg;
|
||||
else
|
||||
prio = duparg;
|
||||
|
||||
ptr = strchr(prio, '.');
|
||||
if (ptr) {
|
||||
*ptr++ = 0;
|
||||
|
||||
for (int i = 0; facilitynames[i].c_name; i++) {
|
||||
if (!strcmp(facilitynames[i].c_name, arg)) {
|
||||
if (!strcmp(facilitynames[i].c_name, prio)) {
|
||||
*f = facilitynames[i].c_val;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
arg = ptr;
|
||||
prio = ptr;
|
||||
}
|
||||
|
||||
for (int i = 0; prioritynames[i].c_name; i++) {
|
||||
if (!strcmp(prioritynames[i].c_name, arg)) {
|
||||
if (!strcmp(prioritynames[i].c_name, prio)) {
|
||||
*l = prioritynames[i].c_val;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (duparg != arg)
|
||||
free(duparg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user