diff options
| author | Nakidai <nakidai@disroot.org> | 2025-03-25 23:50:04 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2025-03-25 23:50:04 +0300 |
| commit | c81f7ba8128e4845553d24b157504bf573e290ab (patch) | |
| tree | 75f8d9de4daaac3195b0c5d1cbb4852eedfd9d3b | |
| parent | b9391202e6eed893e0c1e6969ac375df2878a025 (diff) | |
| download | 3cl-c81f7ba8128e4845553d24b157504bf573e290ab.tar.gz 3cl-c81f7ba8128e4845553d24b157504bf573e290ab.zip | |
Add pledge(2) calls
| -rw-r--r-- | main.c | 15 |
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); |