X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=rcS.c;h=48131462631b2c3ba7624195f722a032973eea0a;hp=8c72c194614809d98b09fe9ad6ccf30f64ebe64b;hb=8d720b2c2e569885c6e1e7eab68d36f31818ed84;hpb=07c7864d49723b1264ee8bcd6861ea92f679ee98 diff --git a/rcS.c b/rcS.c index 8c72c19..4813146 100644 --- a/rcS.c +++ b/rcS.c @@ -54,7 +54,7 @@ static void pipe_cb(struct ustream *s, int bytes) break; *newline = 0; len = newline + 1 - str; - syslog(0, "%s", str); + ULOG_NOTE("%s", str); #ifdef SHOW_BOOT_ON_CONSOLE fprintf(stderr, "%s\n", str); #endif @@ -115,10 +115,16 @@ static void add_initd(struct runqueue *q, char *file, char *param) char *p, *f; s = calloc_a(sizeof(*s), &f, strlen(file) + 1, &p, strlen(param) + 1); + if (!s) { + ERROR("Out of memory in %s.\n", file); + return; + } s->proc.task.type = &initd_type; s->proc.task.complete = q_initd_complete; - if (!strcmp(param, "stop") || !strcmp(param, "shutdown")) + if (!strcmp(param, "stop") || !strcmp(param, "shutdown")) { s->proc.task.run_timeout = 15000; + s->proc.task.cancel_timeout = 10000; + } s->param = p; s->file = f; strcpy(s->param, param); @@ -132,6 +138,11 @@ static int _rc(struct runqueue *q, char *path, const char *file, char *pattern, glob_t gl; int j; + if (!dir) { + ERROR("Out of memory in %s.\n", file); + return -1; + } + DEBUG(2, "running %s/%s%s %s\n", path, file, pattern, param); sprintf(dir, "%s/%s%s", path, file, pattern); if (glob(dir, GLOB_NOESCAPE | GLOB_MARK, NULL, &gl)) {