From e4c1ec916bcdcbbdd073c514b51a4b9208c0b887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 26 Sep 2023 00:09:56 +0800 Subject: [PATCH] FFstrbuf: change `ffStrbufToUInt16` to more general function `ffStrbufToUInt` --- src/detection/chassis/chassis_linux.c | 2 +- src/detection/cpu/cpu_linux.c | 2 +- src/detection/displayserver/displayserver_android.c | 4 ++-- src/util/FFstrbuf.c | 6 +++--- src/util/FFstrbuf.h | 2 +- tests/strbuf.c | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/detection/chassis/chassis_linux.c b/src/detection/chassis/chassis_linux.c index deace35d9..074753eb6 100644 --- a/src/detection/chassis/chassis_linux.c +++ b/src/detection/chassis/chassis_linux.c @@ -25,7 +25,7 @@ const char* ffDetectChassis(FFChassisResult* result) if(result->type.length) { - const char* typeStr = ffChassisTypeToString(ffStrbufToUInt16(&result->type, 9999)); + const char* typeStr = ffChassisTypeToString((uint32_t) ffStrbufToUInt(&result->type, 9999)); if(typeStr) ffStrbufSetS(&result->type, typeStr); } diff --git a/src/detection/cpu/cpu_linux.c b/src/detection/cpu/cpu_linux.c index bdffc755f..af340756b 100644 --- a/src/detection/cpu/cpu_linux.c +++ b/src/detection/cpu/cpu_linux.c @@ -128,7 +128,7 @@ const char* ffDetectCPUImpl(const FFCPUOptions* options, FFCPUResult* cpu) const char* error = parseCpuInfo(cpu, &physicalCoresBuffer, &cpuMHz, &cpuIsa, &cpuUarch); if (error) return error; - cpu->coresPhysical = ffStrbufToUInt16(&physicalCoresBuffer, 1); + cpu->coresPhysical = (uint16_t) ffStrbufToUInt(&physicalCoresBuffer, 1); cpu->coresLogical = (uint16_t) get_nprocs_conf(); cpu->coresOnline = (uint16_t) get_nprocs(); diff --git a/src/detection/displayserver/displayserver_android.c b/src/detection/displayserver/displayserver_android.c index af57a0628..d1e342503 100644 --- a/src/detection/displayserver/displayserver_android.c +++ b/src/detection/displayserver/displayserver_android.c @@ -80,9 +80,9 @@ static bool detectWithGetprop(FFDisplayServerResult* ds) ffStrbufContainC(&buffer, ',')) { // 1440,3200,560 => width,height,ppi - uint32_t width = ffStrbufToUInt16(&buffer, 0); + uint32_t width = (uint32_t) ffStrbufToUInt(&buffer, 0); ffStrbufSubstrAfterFirstC(&buffer, ','); - uint32_t height = ffStrbufToUInt16(&buffer, 0); + uint32_t height = (uint32_t) ffStrbufToUInt(&buffer, 0); return ffdsAppendDisplay(ds, width, height, diff --git a/src/util/FFstrbuf.c b/src/util/FFstrbuf.c index ef049b698..221a98fc3 100644 --- a/src/util/FFstrbuf.c +++ b/src/util/FFstrbuf.c @@ -431,11 +431,11 @@ double ffStrbufToDouble(const FFstrbuf* strbuf) return str_end == strbuf->chars ? 0.0/0.0 : result; } -uint16_t ffStrbufToUInt16(const FFstrbuf* strbuf, uint16_t defaultValue) +uint64_t ffStrbufToUInt(const FFstrbuf* strbuf, uint64_t defaultValue) { char* str_end; - unsigned long result = strtoul(strbuf->chars, &str_end, 10); - return str_end == strbuf->chars || result > UINT16_MAX ? defaultValue : (uint16_t)result; + unsigned long long result = strtoull(strbuf->chars, &str_end, 10); + return str_end == strbuf->chars ? defaultValue : (uint64_t)result; } void ffStrbufUpperCase(FFstrbuf* strbuf) diff --git a/src/util/FFstrbuf.h b/src/util/FFstrbuf.h index 704abfd29..77db4be96 100644 --- a/src/util/FFstrbuf.h +++ b/src/util/FFstrbuf.h @@ -82,7 +82,7 @@ void ffStrbufWriteTo(const FFstrbuf* strbuf, FILE* file); void ffStrbufPutTo(const FFstrbuf* strbuf, FILE* file); FF_C_NODISCARD double ffStrbufToDouble(const FFstrbuf* strbuf); -FF_C_NODISCARD uint16_t ffStrbufToUInt16(const FFstrbuf* strbuf, uint16_t defaultValue); +FF_C_NODISCARD uint64_t ffStrbufToUInt(const FFstrbuf* strbuf, uint64_t defaultValue); void ffStrbufUpperCase(FFstrbuf* strbuf); void ffStrbufLowerCase(FFstrbuf* strbuf); diff --git a/tests/strbuf.c b/tests/strbuf.c index defce5a87..702f40539 100644 --- a/tests/strbuf.c +++ b/tests/strbuf.c @@ -123,7 +123,7 @@ int main(void) //toNumber VERIFY(ffStrbufToDouble(&strbuf) == 123456789.0); - VERIFY(ffStrbufToUInt16(&strbuf, 999) == 999); //overflow + VERIFY(ffStrbufToUInt(&strbuf, 999) == 123456789); //countC