--- crond.c | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/crond.c b/crond.c index 32a170e..7974b1f 100644 --- a/crond.c +++ b/crond.c _AT_@ -101,12 +101,8 @@ emalloc(size_t size) { void *p; p = malloc(size); - if (!p) { + if (!p) logerr("error: out of memory\n"); - if (nflag == 0) - unlink(pidfile); - exit(EXIT_FAILURE); - } return p; } _AT_@ -116,12 +112,8 @@ estrdup(const char *s) char *p; p = strdup(s); - if (!p) { + if (!p) logerr("error: out of memory\n"); - if (nflag == 0) - unlink(pidfile); - exit(EXIT_FAILURE); - } return p; } _AT_@ -157,7 +149,8 @@ runjob(char *cmd) cmd, ctime(&t)); _exit(EXIT_FAILURE); } else { - je = emalloc(sizeof(*je)); + if (!(je = emalloc(sizeof(*je)))) + return; je->cmd = estrdup(cmd); je->pid = pid; je->next = jobs; _AT_@ -297,7 +290,8 @@ parsefield(const char *field, long low, long high, struct field *f) f->len = 0; f->type = WILDCARD; } else if (strncmp(field, "*/", 2) == 0) { - f->val = emalloc(sizeof(*f->val)); + if (!(f->val = emalloc(sizeof(*f->val)))) + return -1; f->len = 1; errno = 0; _AT_@ -309,7 +303,8 @@ parsefield(const char *field, long low, long high, struct field *f) } break; case '\0': - f->val = emalloc(sizeof(*f->val)); + if (!(f->val = emalloc(sizeof(*f->val)))) + return -1; f->len = 1; errno = 0; _AT_@ -320,7 +315,8 @@ parsefield(const char *field, long low, long high, struct field *f) f->type = NUMBER; break; case '-': - f->val = emalloc(2 * sizeof(*f->val)); + if (!(f->val = emalloc(2 * sizeof(*f->val)))) + return -1; f->len = 2; errno = 0; _AT_@ -339,7 +335,8 @@ parsefield(const char *field, long low, long high, struct field *f) for (i = 1; isdigit(*p) || *p == ','; p++) if (*p == ',') i++; - f->val = emalloc(i * sizeof(*f->val)); + if (!(f->val = emalloc(i * sizeof(*f->val)))) + return -1; f->len = i; errno = 0; _AT_@ -438,7 +435,10 @@ loadentries(void) if (line[0] == '#' || line[0] == '\n' || line[0] == '\0') continue; - cte = emalloc(sizeof(*cte)); + if (!(cte = emalloc(sizeof(*cte)))) { + r = -1; + break; + } flim[0].f = &cte->min; flim[1].f = &cte->hour; flim[2].f = &cte->mday; _AT_@ -473,7 +473,11 @@ loadentries(void) r = -1; break; } - cte->cmd = estrdup(col); + if (!(cte->cmd = estrdup(col))) { + freecte(cte, 5); + r = -1; + break; + } cte->next = ctab; ctab = cte; } -- 2.13.2Received on Tue Jul 11 2017 - 06:55:41 CEST
This archive was generated by hypermail 2.3.0 : Tue Jul 11 2017 - 07:01:27 CEST