Add rk_cloexec_dir() to lib/roken
This commit is contained in:
@@ -113,9 +113,7 @@ dir_iter_start(hx509_context context,
|
||||
free(d);
|
||||
return errno;
|
||||
}
|
||||
#ifndef _WIN32
|
||||
rk_cloexec(dirfd(d->dir));
|
||||
#endif
|
||||
rk_cloexec_dir(d->dir);
|
||||
d->certs = NULL;
|
||||
d->iter = NULL;
|
||||
|
||||
|
@@ -205,9 +205,7 @@ load_plugins(krb5_context context)
|
||||
d = opendir(*di);
|
||||
if (d == NULL)
|
||||
continue;
|
||||
#ifdef HAVE_DIRFD
|
||||
rk_cloexec(dirfd(d));
|
||||
#endif
|
||||
rk_cloexec_dir(d);
|
||||
|
||||
while ((entry = readdir(d)) != NULL) {
|
||||
char *n = entry->d_name;
|
||||
|
@@ -56,3 +56,11 @@ rk_cloexec_file(FILE *f)
|
||||
rk_cloexec(fileno(f));
|
||||
#endif
|
||||
}
|
||||
|
||||
void ROKEN_LIB_FUNCTION
|
||||
rk_cloexec_dir(DIR * d)
|
||||
{
|
||||
#ifdef HAVE_DIRFD
|
||||
rk_cloexec(dirfd(d));
|
||||
#endif
|
||||
}
|
||||
|
@@ -480,6 +480,9 @@ rk_cloexec(int);
|
||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||
rk_cloexec_file(FILE *);
|
||||
|
||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||
rk_cloexec_dir(DIR *);
|
||||
|
||||
ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
|
||||
ct_memcmp(const void *, const void *, size_t);
|
||||
|
||||
|
@@ -222,6 +222,10 @@ struct sockaddr_dl;
|
||||
#include <paths.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DIRENT_H
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
|
||||
#ifdef BACKSLASH_PATH_DELIM
|
||||
#define rk_PATH_DELIM '\\'
|
||||
#endif
|
||||
|
@@ -42,6 +42,7 @@ HEIMDAL_ROKEN_1.0 {
|
||||
rk_cgetstr;
|
||||
rk_cloexec;
|
||||
rk_cloexec_file;
|
||||
rk_cloexec_dir;
|
||||
rk_closefrom;
|
||||
rk_copyhostent;
|
||||
rk_dns_free_data;
|
||||
|
Reference in New Issue
Block a user