]> git.cameronkatri.com Git - mandoc.git/blobdiff - catman.c
Protect against malicious manual pages containing .ll requests with
[mandoc.git] / catman.c
index 88a818ac2c26ad5467fb898203242e2b54385204..7d62c0e74addd37dc2c2846e81700c87729bbdd8 100644 (file)
--- a/catman.c
+++ b/catman.c
@@ -1,4 +1,4 @@
-/*     $Id: catman.c,v 1.17 2017/02/09 18:46:44 schwarze Exp $ */
+/*     $Id: catman.c,v 1.21 2017/02/18 12:24:24 schwarze Exp $ */
 /*
  * Copyright (c) 2017 Michael Stapelberg <stapelberg@debian.org>
  * Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
 #include <time.h>
 #include <unistd.h>
 
-#ifndef O_DIRECTORY
-#define O_DIRECTORY 0
-#endif
-
 int     process_manpage(int, int, const char *);
 int     process_tree(int, int);
 void    run_mandocd(int, const char *, const char *)
-               __attribute__((noreturn));
+               __attribute__((__noreturn__));
 ssize_t         sock_fd_write(int, int, int, int);
-void    usage(void) __attribute__((noreturn));
+void    usage(void) __attribute__((__noreturn__));
 
 
 void
@@ -61,10 +57,11 @@ run_mandocd(int sockfd, const char *outtype, const char* defos)
        if (snprintf(sockfdstr, sizeof(sockfdstr), "%d", sockfd) == -1)
                err(1, "snprintf");
        if (defos == NULL)
-               execlp("mandocd", "mandocd", "-T", outtype, sockfdstr, NULL);
+               execlp("mandocd", "mandocd", "-T", outtype,
+                   sockfdstr, (char *)NULL);
        else
                execlp("mandocd", "mandocd", "-T", outtype,
-                   "-I", defos, sockfdstr, NULL);
+                   "-I", defos, sockfdstr, (char *)NULL);
        err(1, "exec");
 }
 
@@ -257,7 +254,7 @@ main(int argc, char **argv)
 void
 usage(void)
 {
-       fprintf(stderr, "usage: catman [-I os=name] [-T output] "
-           "srcdir dstdir\n");
+       fprintf(stderr, "usage: %s [-I os=name] [-T output] "
+           "srcdir dstdir\n", BINM_CATMAN);
        exit(1);
 }