diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/host.c | 31 | ||||
-rw-r--r-- | src/logo/freebsd.c | 5 | ||||
-rw-r--r-- | src/logo/linux.c | 5 | ||||
-rw-r--r-- | src/logo/netbsd.c | 5 | ||||
-rw-r--r-- | src/logo/openbsd.c | 5 | ||||
-rw-r--r-- | src/logo/openindiana.c | 5 |
6 files changed, 45 insertions, 11 deletions
@@ -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; |