helpers.c:set_hostname() - Fix resource and memory leaks.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson
2014-10-31 15:26:49 +01:00
parent 2fdd64a2d8
commit 8247344f0d
3 changed files with 15 additions and 12 deletions
+1 -1
View File
@@ -250,7 +250,7 @@ int main(int argc, char* argv[])
run("/sbin/sysctl -e -p /etc/sysctl.conf >/dev/null");
/* Set initial hostname. */
set_hostname(hostname);
set_hostname(&hostname);
ifconfig("lo", "127.0.0.1", "255.0.0.0", 1);
if (network)
+13 -10
View File
@@ -580,7 +580,7 @@ pid_t run_getty(char *cmd, char *args[], int console)
}
if (console) {
i = write(STDERR_FILENO, msg, sizeof(msg));
(void)write(STDERR_FILENO, msg, sizeof(msg));
while (read(STDIN_FILENO, &c, 1) == 1 && c != '\n')
continue;
}
@@ -697,26 +697,29 @@ void do_sleep(unsigned int sec)
;
}
void set_hostname(char *hostname)
void set_hostname(char **hostname)
{
FILE *fp;
_d("Set hostname: %s", hostname);
if ((fp = fopen("/etc/hostname", "r")) != NULL) {
_d("Set hostname: %s", *hostname);
fp = fopen("/etc/hostname", "r");
if (fp) {
struct stat st;
fstat(fileno(fp), &st);
hostname = realloc(hostname, st.st_size);
if (!hostname)
*hostname = realloc(*hostname, st.st_size);
if (!*hostname) {
fclose(fp);
return;
}
fgets(hostname, st.st_size, fp);
chomp(hostname);
fgets(*hostname, st.st_size, fp);
chomp(*hostname);
fclose(fp);
}
if (hostname)
sethostname(hostname, strlen(hostname));
if (*hostname)
sethostname(*hostname, strlen(*hostname));
}
/**
+1 -1
View File
@@ -101,7 +101,7 @@ void chomp (char *str);
void do_sleep (unsigned int sec);
int getuser (char *username);
int getgroup (char *group);
void set_hostname (char *hostname);
void set_hostname (char **hostname);
int complete (char *cmd, int pid);
int run (char *cmd);