Compare commits

..

2 Commits

2 changed files with 13 additions and 3 deletions

View File

@ -7,7 +7,7 @@
extern int kernel_start;
extern int kernel_end;
static InitRD::File symbol_map = {"", 0, 0, (void*)-1};
static InitRD::File symbol_map = {"", 0, 0, (void*)-1, 0};
static size_t symbol_strlen(const char* symbol)
{

View File

@ -7,6 +7,8 @@
#include <unistd.h>
static FILE* pwd_file = nullptr;
static FILE* pwnam_file = nullptr;
static FILE* pwuid_file = nullptr;
static int initialize_pwd(FILE** stream)
{
@ -126,7 +128,6 @@ extern "C"
struct passwd* getpwnam(const char* name)
{
static FILE* pwnam_file = nullptr;
if (!pwnam_file)
{
if (!initialize_pwd(&pwnam_file)) return NULL;
@ -149,7 +150,6 @@ extern "C"
struct passwd* getpwuid(uid_t uid)
{
static FILE* pwuid_file = nullptr;
if (!pwuid_file)
{
if (!initialize_pwd(&pwuid_file)) return NULL;
@ -182,5 +182,15 @@ extern "C"
fclose(pwd_file);
pwd_file = nullptr;
}
if (pwuid_file)
{
fclose(pwuid_file);
pwuid_file = nullptr;
}
if (pwnam_file)
{
fclose(pwnam_file);
pwnam_file = nullptr;
}
}
}