Index: grepcidr.c --- grepcidr.c.orig +++ grepcidr.c @@ -580,6 +580,12 @@ int main(int argc, char* argv[]) char* pat_strings = NULL; /* pattern strings on command line */ int foundopt; + if (pledge("stdio rpath", NULL) == -1) + { + fprintf(stderr, "grepcidr: pledge()"); + return EXIT_ERROR; + } + if ((CHAR_BIT != 8) || (sizeof(unsigned int) < 4) || (sizeof(struct in_addr) != 4) || (sizeof(struct in6_addr) != 16)) { @@ -660,8 +666,15 @@ int main(int argc, char* argv[]) { /* Search each specified file name, or just stdin */ const char* curfilename = NULL; FILE* inp_stream; - if (optind >= argc) + if (optind >= argc) { inp_stream = stdin; + + if (pledge("stdio", NULL) == -1) + { + fprintf(stderr, "grepcidr: pledge()"); + return EXIT_ERROR; + } + } else { /* One or more file names are specified on the command line */