@@ -10,7 +10,7 @@ const char* ffDetectCPUCache(FFCPUCacheResult* result)
1010 // macOS provides the global system cache line size
1111 uint32_t lineSize = (uint32_t ) ffSysctlGetInt ("hw.cachelinesize" , 0 );
1212
13- char sysctlKey [256 ] = "hw.perflevelN." ;
13+ char sysctlKey [128 ] = "hw.perflevelN." ;
1414 char * pNum = sysctlKey + strlen ("hw.perflevel" );
1515 char * pSubkey = sysctlKey + strlen ("hw.perflevelN." );
1616 const size_t lenLeft = sizeof (sysctlKey ) - strlen ("hw.perflevelN." );
@@ -19,35 +19,35 @@ const char* ffDetectCPUCache(FFCPUCacheResult* result)
1919 {
2020 * pNum = (char ) ('0' + i );
2121
22- strncpy (pSubkey , "physicalcpu" , lenLeft );
22+ strlcpy (pSubkey , "physicalcpu" , lenLeft );
2323 uint32_t ncpu = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
2424 if (ncpu <= 0 ) continue ;
2525
26- strncpy (pSubkey , "l1icachesize" , lenLeft );
26+ strlcpy (pSubkey , "l1icachesize" , lenLeft );
2727 uint32_t size = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
2828 if (size )
2929 ffCPUCacheAddItem (result , 1 , size , lineSize , FF_CPU_CACHE_TYPE_INSTRUCTION )-> num = ncpu ;
3030
31- strncpy (pSubkey , "l1dcachesize" , lenLeft );
31+ strlcpy (pSubkey , "l1dcachesize" , lenLeft );
3232 size = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
3333 if (size )
3434 ffCPUCacheAddItem (result , 1 , size , lineSize , FF_CPU_CACHE_TYPE_DATA )-> num = ncpu ;
3535
36- strncpy (pSubkey , "l2cachesize" , lenLeft );
36+ strlcpy (pSubkey , "l2cachesize" , lenLeft );
3737 size = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
3838 if (size )
3939 {
40- strncpy (pSubkey , "cpusperl2" , lenLeft );
40+ strlcpy (pSubkey , "cpusperl2" , lenLeft );
4141 uint32_t cpuSper = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
4242 if (cpuSper )
4343 ffCPUCacheAddItem (result , 2 , size , lineSize , FF_CPU_CACHE_TYPE_UNIFIED )-> num = ncpu / cpuSper ;
4444 }
4545
46- strncpy (pSubkey , "l3cachesize" , lenLeft );
46+ strlcpy (pSubkey , "l3cachesize" , lenLeft );
4747 size = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
4848 if (size )
4949 {
50- strncpy (pSubkey , "cpusperl3" , lenLeft );
50+ strlcpy (pSubkey , "cpusperl3" , lenLeft );
5151 uint32_t cpuSper = (uint32_t ) ffSysctlGetInt (sysctlKey , 0 );
5252 if (cpuSper )
5353 ffCPUCacheAddItem (result , 3 , size , lineSize , FF_CPU_CACHE_TYPE_UNIFIED )-> num = ncpu / cpuSper ;
0 commit comments