And make it inline.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
find_new_sub_gids.c \
find_new_sub_uids.c \
fputsx.c \
+ fs/mkstemp/fmkomstemp.c \
+ fs/mkstemp/fmkomstemp.h \
fs/readlink/areadlink.c \
fs/readlink/areadlink.h \
fs/readlink/readlinknul.c \
--- /dev/null
+// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
+// SPDX-License-Identifier: BSD-3-Clause
+
+
+#include <config.h>
+
+#include "fs/mkstemp/fmkomstemp.h"
+
+#include <stdio.h>
+#include <sys/types.h>
+
+
+extern inline FILE *fmkomstemp(char *template, unsigned int flags, mode_t m);
--- /dev/null
+// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
+// SPDX-License-Identifier: BSD-3-Clause
+
+
+#ifndef SHADOW_INCLUDE_LIB_FS_MKSTEMP_FMKOMSTEMP_H_
+#define SHADOW_INCLUDE_LIB_FS_MKSTEMP_FMKOMSTEMP_H_
+
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+
+inline FILE *fmkomstemp(char *template, unsigned int flags, mode_t m);
+
+
+inline FILE *
+fmkomstemp(char *template, unsigned int flags, mode_t m)
+{
+ int fd;
+ FILE *fp;
+
+ fd = mkostemp(template, flags);
+ if (fd == -1)
+ return NULL;
+
+ if (fchmod(fd, m) == -1)
+ goto fail;
+
+ fp = fdopen(fd, "w");
+ if (fp == NULL)
+ goto fail;
+
+ return fp;
+fail:
+ close(fd);
+ unlink(template);
+ return NULL;
+}
+
+
+#endif // include guard
#include "chkname.h"
#include "defines.h"
#include "faillog.h"
+#include "fs/mkstemp/fmkomstemp.h"
#include "getdef.h"
#include "groupio.h"
#include "nscd.h"
static void create_mail (void);
static void check_uid_range(int rflg, uid_t user_id);
-static FILE *fmkomstemp(char *template, unsigned int flags, mode_t m);
-
/*
* fail_exit - undo as much as possible
return E_SUCCESS;
}
-
-
-static FILE *
-fmkomstemp(char *template, unsigned int flags, mode_t m)
-{
- int fd;
- FILE *fp;
-
- fd = mkostemp(template, flags);
- if (fd == -1)
- return NULL;
-
- if (fchmod(fd, m) == -1)
- goto fail;
-
- fp = fdopen(fd, "w");
- if (fp == NULL)
- goto fail;
-
- return fp;
-fail:
- close(fd);
- unlink(template);
- return NULL;
-}