aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-06-30 23:17:51 +0000
committerLaurent Bercot <ska@appnovation.com>2025-06-30 23:17:51 +0000
commit602fa26a4100c6683db0a7d801ad87b39a5a5314 (patch)
treecfcfa6f1cfc9a1e536b67e5d2768256e05ea765d
parentcf86f7342d95cbe4e46eb99753addb099302e829 (diff)
downloads6-linux-utils-602fa26a4100c6683db0a7d801ad87b39a5a5314.tar.gz
rngseed: use mkdirp2
Signed-off-by: Laurent Bercot <ska@appnovation.com>
-rw-r--r--src/s6-linux-utils/rngseed.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/src/s6-linux-utils/rngseed.c b/src/s6-linux-utils/rngseed.c
index 223f50a..26c065a 100644
--- a/src/s6-linux-utils/rngseed.c
+++ b/src/s6-linux-utils/rngseed.c
@@ -17,6 +17,7 @@
#endif
#include <linux/random.h>
+#include <skalibs/posixplz.h>
#include <skalibs/types.h>
#include <skalibs/sgetopt.h>
#include <skalibs/error.h>
@@ -52,20 +53,6 @@ struct randpoolinfo_s
char buffer[512] ;
} ;
-static inline void rngseed_mkdirp (char *s, size_t len)
-{
- mode_t m = umask(0) ;
- size_t i = 1 ;
- for (; i < len ; i++) if (s[i] == '/')
- {
- s[i] = 0 ;
- if (mkdir(s, 02755) < 0 && errno != EEXIST)
- strerr_diefu2sys(111, "mkdir ", s) ;
- s[i] = '/' ;
- }
- umask(m) ;
-}
-
static inline int rngseed_read_seed_nb (char *s, size_t len)
{
int wcred ;
@@ -139,8 +126,7 @@ int main (int argc, char const *const *argv)
if (dirlen)
{
file[dirlen] = 0 ;
- rngseed_mkdirp(file, dirlen) ;
- if (mkdir(file, 0700) == -1)
+ if (mkdirp2(file, 0700) == -1)
{
struct stat st ;
if (errno != EEXIST) strerr_diefu2sys(111, "mkdir ", file) ;