mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
Upgrde to libite version with new tempfile()
The tempfile() replacement in Finit leaked temporary files in /tmp. The mkstemp() based implementation does not remove temporary files when they are closed. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
@@ -126,30 +126,6 @@ int atonum(char *str)
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* tempfile - A secure tmpfile() replacement
|
||||
*
|
||||
* This is the secure replacement for tmpfile() that does not exist in GLIBC.
|
||||
* The function uses mkstemp() for security.
|
||||
*
|
||||
* Returns:
|
||||
* An open %FILE pointer, or %NULL on error.
|
||||
*/
|
||||
FILE *tempfile(void)
|
||||
{
|
||||
int fd;
|
||||
mode_t oldmask;
|
||||
char template[] = "/tmp/finit.XXXXXX";
|
||||
|
||||
oldmask = umask(0077);
|
||||
fd = mkstemp(template);
|
||||
umask(oldmask);
|
||||
if (-1 == fd)
|
||||
return NULL;
|
||||
|
||||
return fdopen(fd, "rw");
|
||||
}
|
||||
|
||||
static int encode(int lvl)
|
||||
{
|
||||
if (!lvl) return 0;
|
||||
|
||||
@@ -69,7 +69,6 @@ int makepath (char *path);
|
||||
void ifconfig (char *ifname, char *addr, char *mask, int up);
|
||||
|
||||
int atonum (char *str);
|
||||
FILE *tempfile (void);
|
||||
|
||||
void runlevel_set (int pre, int now);
|
||||
int runlevel_get (void);
|
||||
|
||||
+1
-1
Submodule libite updated: 84c3667eba...c5434a4bc0
Reference in New Issue
Block a user