cmark

My personal build of CMark ✏️

Commit
f0793895eefc8ca14499831a24abee549a5af53e
Parent
b1556b3407a4349b9a1f4f58d8677eda0ead09c1
Author
John MacFarlane <jgm@berkeley.edu>
Date

Merge pull request #278 from github/upstream-pledge

Use pledge(2) on OpenBSD

Diffstat

1 file changed, 22 insertions, 0 deletions

Status File Name N° Changes Insertions Deletions
Modified src/main.c 22 22 0
diff --git a/src/main.c b/src/main.c
@@ -7,6 +7,14 @@
 #include "cmark.h"
 #include "node.h"
 
+#if defined(__OpenBSD__)
+#  include <sys/param.h>
+#  if OpenBSD >= 201605
+#    define USE_PLEDGE
+#    include <unistd.h>
+#  endif
+#endif
+
 #if defined(_WIN32) && !defined(__CYGWIN__)
 #include <io.h>
 #include <fcntl.h>
@@ -77,6 +85,13 @@ int main(int argc, char *argv[]) {
   writer_format writer = FORMAT_HTML;
   int options = CMARK_OPT_DEFAULT;
 
+#ifdef USE_PLEDGE
+  if (pledge("stdio rpath", NULL) != 0) {
+    perror("pledge");
+    return 1;
+  }
+#endif
+
 #if defined(_WIN32) && !defined(__CYGWIN__)
   _setmode(_fileno(stdin), _O_BINARY);
   _setmode(_fileno(stdout), _O_BINARY);
@@ -176,6 +191,13 @@ int main(int argc, char *argv[]) {
     }
   }
 
+#ifdef USE_PLEDGE
+  if (pledge("stdio", NULL) != 0) {
+    perror("pledge");
+    return 1;
+  }
+#endif
+
   document = cmark_parser_finish(parser);
   cmark_parser_free(parser);