summary refs log tree commit diff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/main.c b/main.c
index da9d64e..d612828 100644
--- a/main.c
+++ b/main.c
@@ -15,6 +15,12 @@ int dump = 0;
 int main(int argc, char **argv)
 {
     const char *name = *argv;
+    int error;
+#ifdef __OpenBSD__
+    error = pledge("stdio rpath", NULL);
+    if (error)
+        err(1, "pledge()");
+#endif /* __OpenBSD__ */
 
     int ch;
     while ((ch = getopt(argc, argv, "vid")) >= 0)
@@ -51,13 +57,20 @@ int main(int argc, char **argv)
 
     struct cccl_File file;
 
-    int error = cccl_allocfile(*argv, &file);
+    error = cccl_allocfile(*argv, &file);
     if (error)
         err(1, "cccl_readfile()");
 
     FILE *f = fopen(*argv, "r");
     if (!f)
         err(1, "fopen()");
+
+#ifdef __OpenBSD__
+    error = pledge("stdio", NULL);
+    if (error)
+        err(1, "pledge()");
+#endif /* __OpenBSD__ */
+
     int bytes_read = fread(file.buffer, 1, file.size, f);
     if (ferror(f) || bytes_read != file.size)
         errx(1, "couldn't read %s", *argv);