From c0cbaab04b3d37a1786f04018eb6226359291031 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 10 Apr 2024 10:04:07 -0400 Subject: fsade: Add libselinux wrappers --- src/fsade.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/fsade.c') diff --git a/src/fsade.c b/src/fsade.c index ee17416..0810c7f 100644 --- a/src/fsade.c +++ b/src/fsade.c @@ -22,6 +22,10 @@ # include #endif +#if BFS_CAN_CHECK_CONTEXT +# include +#endif + #if BFS_USE_SYS_EXTATTR_H # include #elif BFS_USE_SYS_XATTR_H @@ -414,3 +418,32 @@ int bfs_check_xattr_named(const struct BFTW *ftwbuf, const char *name) { } #endif + +char *bfs_getfilecon(const struct BFTW *ftwbuf) { +#if BFS_CAN_CHECK_CONTEXT + const char *path = fake_at(ftwbuf); + + char *con; + int ret; + if (ftwbuf->type == BFS_LNK) { + ret = lgetfilecon(path, &con); + } else { + ret = getfilecon(path, &con); + } + + if (ret >= 0) { + return con; + } else { + return NULL; + } +#else + errno = ENOTSUP; + return NULL; +#endif +} + +void bfs_freecon(char *con) { +#if BFS_CAN_CHECK_CONTEXT + freecon(con); +#endif +} -- cgit v1.2.3