diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-12-23 18:32:49 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2025-12-23 18:32:49 +0000 |
| commit | 3502b31fb0b7f19fa681d4444f1e6b97d5be0cea (patch) | |
| tree | 0140d56ce042c7c8453e34823075dd0304f2f6cf | |
| parent | 6fbc86a95333119569fc6d59a272d426a40abbc8 (diff) | |
| download | skalibs-3502b31fb0b7f19fa681d4444f1e6b97d5be0cea.tar.gz | |
Make fd_sanitize() a real function
| -rw-r--r-- | package/deps.mak | 1 | ||||
| -rw-r--r-- | src/include/skalibs/djbunix.h | 2 | ||||
| -rw-r--r-- | src/libstddjb/fd_sanitize.c | 13 |
3 files changed, 15 insertions, 1 deletions
diff --git a/package/deps.mak b/package/deps.mak index a5db027..4732648 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -368,6 +368,7 @@ src/libstddjb/fd_move2.o src/libstddjb/fd_move2.lo: src/libstddjb/fd_move2.c src src/libstddjb/fd_read.o src/libstddjb/fd_read.lo: src/libstddjb/fd_read.c src/include/skalibs/allreadwrite.h src/libstddjb/fd_readv.o src/libstddjb/fd_readv.lo: src/libstddjb/fd_readv.c src/include/skalibs/allreadwrite.h src/libstddjb/fd_recv.o src/libstddjb/fd_recv.lo: src/libstddjb/fd_recv.c src/include/skalibs/allreadwrite.h +src/libstddjb/fd_sanitize.o src/libstddjb/fd_sanitize.lo: src/libstddjb/fd_sanitize.c src/include/skalibs/djbunix.h src/include/skalibs/strerr.h src/libstddjb/fd_send.o src/libstddjb/fd_send.lo: src/libstddjb/fd_send.c src/include/skalibs/allreadwrite.h src/libstddjb/fd_shutdown.o src/libstddjb/fd_shutdown.lo: src/libstddjb/fd_shutdown.c src/include/skalibs/djbunix.h src/include/skalibs/nonposix.h src/libstddjb/fd_sync.o src/libstddjb/fd_sync.lo: src/libstddjb/fd_sync.c src/include/skalibs/djbunix.h diff --git a/src/include/skalibs/djbunix.h b/src/include/skalibs/djbunix.h index 0304ce8..29e37d2 100644 --- a/src/include/skalibs/djbunix.h +++ b/src/include/skalibs/djbunix.h @@ -31,7 +31,7 @@ extern int fd_sync (int) ; extern off_t fd_cat (int, int) ; extern off_t fd_catn (int, int, off_t) ; extern int fd_ensure_open (int, int) ; -#define fd_sanitize() (fd_ensure_open(0, 0) && fd_ensure_open(1, 1) && fd_ensure_open(2, 1)) +extern void fd_sanitize (void) ; extern void fd_shutdown (int, int) ; extern int fd_lock (int, int, int) ; diff --git a/src/libstddjb/fd_sanitize.c b/src/libstddjb/fd_sanitize.c new file mode 100644 index 0000000..d9349cc --- /dev/null +++ b/src/libstddjb/fd_sanitize.c @@ -0,0 +1,13 @@ +/* ISC license. */ + +#include <unistd.h> + +#include <skalibs/strerr.h> +#include <skalibs/djbunix.h> + +void fd_sanitize (void) +{ + if (!fd_ensure_open(2, 1)) _exit(111) ; + if (!fd_ensure_open(1, 1)) strerr_diefu3sys(111, "ensure std", "out", " is open") ; + if (!fd_ensure_open(0, 0)) strerr_diefu3sys(111, "ensure std", "in", " is open") ; +} |
