diff --git a/Makefile b/Makefile index c02ab26..ce5b00d 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CXX=gcc CXXFLAGS=-Wall -Wextra -Werror -pedantic -fstack-protector-all -pedantic -std=c99 -SANITY_FLAGS=-Wfloat-equal -Wshadow -Wpointer-arith +SANITY_FLAGS=-Wfloat-equal -Wshadow -Wpointer-arith -Wno-stringop-truncation SRC_COMMON=src/common/ diff --git a/src/arm/midr.c b/src/arm/midr.c index 0a0168a..64d175f 100644 --- a/src/arm/midr.c +++ b/src/arm/midr.c @@ -125,10 +125,12 @@ void init_cpu_info(struct cpuInfo* cpu) { // We assume all cpus share the same hardware // capabilities but I'm not sure it is always // true... +// ARM32 https://elixir.bootlin.com/linux/latest/source/arch/arm/include/uapi/asm/hwcap.h +// ARM64 https://elixir.bootlin.com/linux/latest/source/arch/arm64/include/uapi/asm/hwcap.h struct features* get_features_info() { struct features* feat = malloc(sizeof(struct features)); bool *ptr = &(feat->AES); - for(int i = 0; i < sizeof(struct features)/sizeof(bool); i++, *ptr++) { + for(uint32_t i = 0; i < sizeof(struct features)/sizeof(bool); i++, ptr++) { *ptr = false; } diff --git a/src/common/cpu.c b/src/common/cpu.c index 03caccf..dd47ac2 100755 --- a/src/common/cpu.c +++ b/src/common/cpu.c @@ -152,7 +152,7 @@ char* get_str_freq(struct frequency* freq) { char* string = malloc(sizeof(char)*size); memset(string, 0, sizeof(char)*size); - if(freq->max == UNKNOWN_FREQ) + if(freq->max == UNKNOWN_FREQ || freq->max < 0) snprintf(string,strlen(STRING_UNKNOWN)+1,STRING_UNKNOWN); else if(freq->max >= 1000) snprintf(string,size,"%.2f"STRING_GIGAHERZ,(float)(freq->max)/1000); diff --git a/src/common/printer.c b/src/common/printer.c index 23fef13..855ec53 100644 --- a/src/common/printer.c +++ b/src/common/printer.c @@ -172,6 +172,10 @@ struct ascii* set_ascii(VENDOR vendor, STYLE style, struct colors* cs) { COL_FANCY_4 = COLOR_FG_GREEN; art->ascii_chars[0] = '@'; } + else { + printBug("Invalid CPU vendor in set_ascii (%d)", art->vendor); + return NULL; + } #elif ARCH_ARM if(art->vendor == SOC_SNAPDRAGON) { COL_FANCY_1 = COLOR_BG_RED; diff --git a/src/x86/cpuid.c b/src/x86/cpuid.c index 02624e8..f064681 100755 --- a/src/x86/cpuid.c +++ b/src/x86/cpuid.c @@ -211,7 +211,7 @@ struct cpuInfo* get_cpu_info() { cpu->feat = feat; bool *ptr = &(feat->AES); - for(int i = 0; i < sizeof(struct features)/sizeof(bool); i++, *ptr++) { + for(uint32_t i = 0; i < sizeof(struct features)/sizeof(bool); i++, ptr++) { *ptr = false; }