diff options
-rw-r--r-- | src/daemon.c | 5 | ||||
-rw-r--r-- | src/daemon.h | 4 | ||||
-rw-r--r-- | src/parse_time.c | 2 | ||||
-rw-r--r-- | src/satd-add.c | 14 | ||||
-rw-r--r-- | src/satd-diminished.c | 2 | ||||
-rw-r--r-- | src/satd-list.c | 49 | ||||
-rw-r--r-- | src/satd-rm.c | 5 | ||||
-rw-r--r-- | src/satd-run.c | 5 | ||||
-rw-r--r-- | src/satd.c | 1 | ||||
-rw-r--r-- | src/satq.c | 2 | ||||
-rw-r--r-- | src/satrm.c | 2 |
11 files changed, 51 insertions, 40 deletions
diff --git a/src/daemon.c b/src/daemon.c index 75e0f36..8221d6a 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -20,9 +20,6 @@ * DEALINGS IN THE SOFTWARE. */ #include "daemon.h" -#include <unistd.h> -#include <stdio.h> -#include <fcntl.h> @@ -148,7 +145,7 @@ reopen(int fd, int oflag) int r, saved_errno; sprintf(path, "/dev/fd/%i", fd); - r = open(fd, oflag); + r = open(path, oflag); if (r < 0) return -1; if (dup2(r, fd) == -1) diff --git a/src/daemon.h b/src/daemon.h index c642f66..bd4a7af 100644 --- a/src/daemon.h +++ b/src/daemon.h @@ -24,6 +24,10 @@ #include <string.h> #include <time.h> #include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <fcntl.h> +#include <assert.h> #include <sys/socket.h> diff --git a/src/parse_time.c b/src/parse_time.c index bb1b59e..d461efd 100644 --- a/src/parse_time.c +++ b/src/parse_time.c @@ -174,8 +174,6 @@ parse_time_time(const char *str, struct timespec *ts, const char **end) static int parse_time_seconds(const char *str, struct timespec *ts, const char **end) { - size_t points = 0; - memset(ts, 0, sizeof(*ts)); ts->tv_sec = strtotime(str, end); diff --git a/src/satd-add.c b/src/satd-add.c index 497e32d..0d7d777 100644 --- a/src/satd-add.c +++ b/src/satd-add.c @@ -39,22 +39,26 @@ main(int argc, char *argv[]) size_t n = 0, elements = 0, i; char *message = NULL; int msg_argc; - char **msg = NULL; - t (reopen(STATE_FILENO, O_RDRW)); + assert(argc == 4); + t (reopen(STATE_FILENO, O_RDWR)); /* Receive and validate message. */ t (readall(SOCK_FILENO, &message, &n)); shutdown(SOCK_FILENO, SHUT_RD); - t (n < sizeof(int) + sizeof(clk) + sizeof(ts)); - n -= sizeof(int) + sizeof(clk) + sizeof(ts); + t (n < sizeof(int) + sizeof(clockid_t) + sizeof(struct timespec)); + n -= sizeof(int) + sizeof(clockid_t) + sizeof(struct timespec); msg_argc = *(int *)(message + n); t ((msg_argc < 1) || !n || message[n - 1]); for (i = n; i--; elements += !message[i]); t (elements < (size_t)msg_argc); - n += sizeof(int) + sizeof(clk) + sizeof(ts); + n += sizeof(int) + sizeof(clockid_t) + sizeof(struct timespec); + + (void) argv; return 0; fail: + + (void) argc; } diff --git a/src/satd-diminished.c b/src/satd-diminished.c index a3a2807..606d8ec 100644 --- a/src/satd-diminished.c +++ b/src/satd-diminished.c @@ -84,7 +84,6 @@ main(int argc, char *argv[], char *envp[]) pid_t pid; char type; const char *image; - struct stat _attr; /* Set up signal handlers. */ if (signal(SIGHUP, sighandler) == SIG_ERR) goto fail; @@ -109,7 +108,6 @@ accept_again: goto fail; } } -peek_again: if (read(fd, &type, sizeof(char)) <= 0) { perror(argv[0]); goto connection_done; diff --git a/src/satd-list.c b/src/satd-list.c index 898c236..e6bcfd7 100644 --- a/src/satd-list.c +++ b/src/satd-list.c @@ -37,7 +37,7 @@ * `NULL` on error. */ static char * -quote(const unsigned char *str) +quote(const char *str) { size_t in = 0; /* < ' ' */ size_t sn = 0; /* = ' ', '"' or '$' */ @@ -45,10 +45,10 @@ quote(const unsigned char *str) size_t qn = 0; /* = '\'' */ size_t rn = 0; /* other */ size_t n, i = 0; - char *s; + const unsigned char *s; char *rc; - for (s = str; *s; s++) { + for (s = (const unsigned char *)str; *s; s++) { if (*s < ' ') in++; else if (*s == ' ') sn++; else if (*s == '"') sn++; @@ -65,7 +65,7 @@ quote(const unsigned char *str) n = rn + sn + bn + 4 * qn + 4 * in + 2; t (!(rc = malloc((n + 1) * sizeof(char)))); rc[i++] = '\''; - for (s = str; *s; s++) { + for (s = (const unsigned char *)str; *s; s++) { rc[i++] = (char)*s; if (*s == '\'') rc[i++] = '\\', rc[i++] = '\'', rc[i++] = '\''; @@ -79,7 +79,7 @@ quote(const unsigned char *str) t (!(rc = malloc((n + 1) * sizeof(char)))); rc[i++] = '$'; rc[i++] = '\''; - for (s = str; *s; s++) { + for (s = (const unsigned char *)str; *s; s++) { if (*s < ' ') { rc[i++] = '\\'; rc[i++] = 'x'; @@ -113,12 +113,12 @@ static void strduration(char *buffer, time_t s) { char *buf = buffer; - int seconds, minutes, hours, days; + int seconds, minutes, hours; seconds = s % 60, s /= 60; minutes = s % 60, s /= 60; hours = s % 24, s /= 24; if (s) { - buf += sprintf(buf, "%llid", (long long int)s)); + buf += sprintf(buf, "%llid", (long long int)s); buf += sprintf(buf, "%02i:", hours); buf += sprintf(buf, "%02i", minutes); } else if (hours) { @@ -138,7 +138,7 @@ strduration(char *buffer, time_t s) * @return 0 on success, -1 on error. */ static int -send_job_str(struct job* job) +send_job_human(struct job* job) { struct tm *tm; struct timespec rem; @@ -150,11 +150,12 @@ send_job_str(struct job* job) char timestr_a[sizeof("0000-00-00 00:00:00") + 3 * sizeof(time_t)]; char timestr_b[10]; char **args = NULL; - const char **arg; - const char **argv = NULL; - const char **envp = NULL; + char **arg; + char **argv = NULL; + char **envp = NULL; size_t argsn; int rc = 0; + int saved_errno; /* Get remaining time. */ if (clock_gettime(job->clk, &rem)) @@ -182,8 +183,8 @@ send_job_str(struct job* job) /* Get textual representation of the expiration time. */ switch (job->clk) { case CLOCK_REALTIME: - t (!(tm = localtime(job->ts.tv_sec))); - strftime(timestr_a, sizeof(timestr), "%Y-%m-%d %H:%M:%S", tm); + t (!(tm = localtime(&(job->ts.tv_sec)))); + strftime(timestr_a, sizeof(timestr_a), "%Y-%m-%d %H:%M:%S", tm); break; default: strduration(timestr_a, job->ts.tv_sec); @@ -193,8 +194,8 @@ send_job_str(struct job* job) /* Get arguments. */ t (!(args = restore_array(job->payload, job->n, &argsn))); - t (!(argv = sublist(args, (size_t)argc))); - t (!(envp = sublist(args + argc, argsn - (size_t)argc))); + t (!(argv = sublist(args, (size_t)(job->argc)))); + t (!(envp = sublist(args + job->argc, argsn - (size_t)(job->argc)))); /* Send message. */ t (!(qstr = quote(args[0]))); @@ -205,15 +206,15 @@ send_job_str(struct job* job) " time: ", timestr_a, ".", timestr_b, "\n", " argv:", NULL)); - for (arg = argv, *arg, arg++) { + for (arg = argv; *arg; arg++) { free(qstr); - t (!(qstr = quote(arg))); + t (!(qstr = quote(*arg))); t (send_string(SOCK_FILENO, STDOUT_FILENO, " ", qstr, NULL)); } free(qstr), qstr = NULL; t (send_string(SOCK_FILENO, STDOUT_FILENO, "\n envp:", NULL)); - for (arg = envp, *arg, arg++) { - t (!(qstr = quote(arg))); + for (arg = envp; *arg; arg++) { + t (!(qstr = quote(*arg))); t (send_string(SOCK_FILENO, STDOUT_FILENO, " ", qstr, NULL)); free(qstr); } @@ -253,8 +254,10 @@ main(int argc, char *argv[]) char *message = NULL; struct job** jobs; struct job** job; + int rc = 0; - t (reopen(STATE_FILENO, O_RDRW)); + assert(argc == 4); + t (reopen(STATE_FILENO, O_RDWR)); /* Receive and validate message. */ t (readall(SOCK_FILENO, &message, &n) || n); @@ -263,7 +266,7 @@ main(int argc, char *argv[]) /* Perform action. */ t (!(jobs = get_jobs())); for (job = jobs; *job; job++) - t (send_job_str(*job)); + t (send_job_human(*job)); done: /* Cleanup. */ @@ -275,9 +278,11 @@ done: free(message); return rc; fail: - if (send_string(SOCK_FILENO, STDERR_FILENO, argv[0], ": ", strerror(errno) "\n", NULL)) + if (send_string(SOCK_FILENO, STDERR_FILENO, argv[0], ": ", strerror(errno), "\n", NULL)) perror(argv[0]); rc = 1; goto done; + + (void) argc; } diff --git a/src/satd-rm.c b/src/satd-rm.c index 4feb93a..3229b68 100644 --- a/src/satd-rm.c +++ b/src/satd-rm.c @@ -42,7 +42,8 @@ main(int argc, char *argv[]) char **arg; int rc = 0; - t (reopen(STATE_FILENO, O_RDRW)); + assert(argc == 4); + t (reopen(STATE_FILENO, O_RDWR)); /* Receive and validate message. */ t (readall(SOCK_FILENO, &message, &n) || !n || message[n - 1]); @@ -66,5 +67,7 @@ fail: perror(argv[0]); rc = 1; goto done; + + (void) argc; } diff --git a/src/satd-run.c b/src/satd-run.c index 0ade981..95551b0 100644 --- a/src/satd-run.c +++ b/src/satd-run.c @@ -42,7 +42,8 @@ main(int argc, char *argv[]) char **arg; int rc = 0; - t (reopen(STATE_FILENO, O_RDRW)); + assert(argc == 4); + t (reopen(STATE_FILENO, O_RDWR)); /* Receive and validate message. */ t (readall(SOCK_FILENO, &message, &n) || (n && message[n - 1])); @@ -74,5 +75,7 @@ fail: perror(argv[0]); rc = 1; goto done; + + (void) argc; } @@ -204,7 +204,6 @@ main(int argc, char *argv[]) { struct sockaddr_un address; int sock = -1, state = -1, foreground = 0; - struct stat attr; char *path = NULL; char *dir; ssize_t len; @@ -45,7 +45,7 @@ main(int argc, char *argv[]) if (argc > 0) argv0 = argv[0]; if (argc > 1) usage(); - SEND(SAT_PRINT, 0, NULL)); + SEND(SAT_PRINT, 0, NULL); END(NULL); } diff --git a/src/satrm.c b/src/satrm.c index 0a9eccf..767782c 100644 --- a/src/satrm.c +++ b/src/satrm.c @@ -51,7 +51,7 @@ main(int argc, char *argv[]) NO_OPTIONS; CONSTRUCT_MESSAGE; - SEND(SAT_REMOVE, n, msg)); + SEND(SAT_REMOVE, n, msg); END(msg); } |