summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/host.c31
-rw-r--r--src/logo/freebsd.c5
-rw-r--r--src/logo/linux.c5
-rw-r--r--src/logo/netbsd.c5
-rw-r--r--src/logo/openbsd.c5
-rw-r--r--src/logo/openindiana.c5
6 files changed, 45 insertions, 11 deletions
diff --git a/src/host.c b/src/host.c
index 72b4cdf..8996908 100644
--- a/src/host.c
+++ b/src/host.c
@@ -68,6 +68,7 @@ void display_host_model() {
"\"sysctl: hw.version: value is not available\" ]; then "
"sysctl -n hw.version && echo \" \"; fi && "
"sysctl -n hw.product");
+ if (!cmd) return;
printf("%s", cmd);
free((void *)cmd);
#elif defined(__FreeBSD__)
@@ -82,12 +83,22 @@ void display_host_model() {
const char *maker = run_host_command("kenv | grep smbios.system.maker | "
"sed 's/\"//g' | sed 's/smbios.system.maker=//'");
printf("%s %s %s", maker, family, product);
+ if (maker) free((void *)maker);
+ if (family) free((void *)family);
+ if (product) free((void *)product);
#elif defined(__NetBSD__)
- printf("%s", run_host_command("sysctl -n machdep.dmi.system-vendor && "
+ const char *cmd = run_host_command("sysctl -n machdep.dmi.system-vendor && "
"echo \" \" && sysctl -n machdep.dmi.system-version && "
- "echo \" \" && sysctl -n machdep.dmi.system-product"));
+ "echo \" \" && sysctl -n machdep.dmi.system-product");
+ if (!cmd) return;
+ printf("%s", cmd);
+ free((void *)cmd);
#elif defined(__sun)
- printf("%s", run_host_command("prtconf -b | awk -F':' '/banner-name/ {printf $2}'"));
+ const char *cmd = run_host_command("prtconf -b | "
+ "awk -F':' '/banner-name/ {printf $2}'");
+ if (!cmd) return;
+ printf("%s", cmd);
+ free((void *)cm(void *)cmd);
#elif defined(__linux__)
const char *cmd1 = NULL;
const char *cmd2 = NULL;
@@ -109,15 +120,23 @@ void display_host_model() {
if (!cmd1) {
printf("Unknown");
} else {
- printf("%s", run_host_command(cmd1));
+ const char *cmd = run_host_command(cmd1);
+ if (!cmd) return;
+ printf("%s", cmd);
+ free((void *)cmd);
}
if (cmd2) {
const char *model = run_host_command(cmd2);
- if (model) printf(" %s", model);
+ if (!model) return;
+ printf(" %s", model);
+ free((void *)model);
}
#elif defined(__APPLE__)
- printf("%s", run_host_command("sysctl -n hw.model"));
+ const char *cmd = run_host_command("sysctl -n hw.model");
+ if (!cmd) return;
+ printf("%s", cmd);
+ free((void *)cmd);
FILE *p = popen("kextstat | grep -F -e \"FakeSMC\" -e \"VirtualSMC\"", "r");
if (!p) {
diff --git a/src/logo/freebsd.c b/src/logo/freebsd.c
index 685deb5..ec3926d 100644
--- a/src/logo/freebsd.c
+++ b/src/logo/freebsd.c
@@ -3,6 +3,7 @@
#include "../resolution.h"
#include <string.h>
+#include <stdlib.h>
char *LOGO[23];
char *LOGO_SMALL[23];
@@ -14,7 +15,9 @@ int minsize = MIN_SIZE;
void getOS() {
color = RED;
titlecolor = RED;
- if (!display_resolution()) minsize--;
+ const char *res = display_resolution();
+ if (!res) minsize--;
+ else free((void *)res);
LOGO[0] = WHITE "``` " RED "` " RESET;
LOGO[1] = WHITE " ` `.....---..." RED "....--.``` -/ " RESET;
diff --git a/src/logo/linux.c b/src/logo/linux.c
index 604130c..6a58f7e 100644
--- a/src/logo/linux.c
+++ b/src/logo/linux.c
@@ -4,6 +4,7 @@
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
char *LOGO[23];
char *LOGO_SMALL[23];
@@ -13,7 +14,9 @@ size_t logosize;
int minsize = MIN_SIZE;
void getDistro(const char *distroname) {
- if (!display_resolution()) minsize--;
+ const char *res = display_resolution();
+ if (!res) minsize--;
+ else free((void *)res);
if (strncmp((char *)distroname, "alpine", strlen("alpine")) == 0) {
color = MAGENTA;
diff --git a/src/logo/netbsd.c b/src/logo/netbsd.c
index 9726f2e..18066a5 100644
--- a/src/logo/netbsd.c
+++ b/src/logo/netbsd.c
@@ -3,6 +3,7 @@
#include "../resolution.h"
#include <string.h>
+#include <stdlib.h>
char *LOGO[23];
char *LOGO_SMALL[23];
@@ -14,7 +15,9 @@ int minsize = MIN_SIZE;
void getOS() {
color = MAGENTA;
titlecolor = MAGENTA;
- if (!display_resolution()) minsize--;
+ const char *res = display_resolution();
+ if (!res) minsize--;
+ else free((void *)res);
LOGO[0] = MAGENTA " `-/oshdmNMNdhyo+:-` " RESET;
LOGO[1] = WHITE "y" MAGENTA "/s+:-`` `.-:+oydNMMMMNhs/-`` " RESET;
diff --git a/src/logo/openbsd.c b/src/logo/openbsd.c
index c33835f..fa59bba 100644
--- a/src/logo/openbsd.c
+++ b/src/logo/openbsd.c
@@ -3,6 +3,7 @@
#include "../resolution.h"
#include <string.h>
+#include <stdlib.h>
char *LOGO[23];
char *LOGO_SMALL[23];
@@ -14,7 +15,9 @@ int minsize = MIN_SIZE;
void getOS() {
color = YELLOW;
titlecolor = YELLOW;
- if (!display_resolution()) minsize--;
+ const char *res = display_resolution();
+ if (!res) minsize--;
+ else free((void *)res);
for (int i = 0; i < LOGO_SIZE; i++) {
LOGO[i] = NULL;
diff --git a/src/logo/openindiana.c b/src/logo/openindiana.c
index 2989078..0195641 100644
--- a/src/logo/openindiana.c
+++ b/src/logo/openindiana.c
@@ -3,6 +3,7 @@
#include "../resolution.h"
#include <string.h>
+#include <stdlib.h>
char *LOGO[23];
char *LOGO_SMALL[23];
@@ -14,7 +15,9 @@ int minsize = MIN_SIZE;
void getOS() {
color = BLUE;
titlecolor = BLUE;
- if (!display_resolution()) minsize--;
+ const char *res = display_resolution();
+ if (!res) minsize--;
+ else free((void *)res);
LOGO[0] = WHITE " .sy/ " RESET;
LOGO[1] = WHITE " .yh+ " RESET;