@@ -196,6 +196,8 @@ static const char *smcReadValue(io_connect_t conn, const UInt32Char_t key, doubl
196196 const char * error = smcReadSmcVal (conn , key , & val );
197197 if (error != NULL )
198198 return error ;
199+ if (val .dataSize == 0 )
200+ return "Empty SMC result" ;
199201
200202 if (strcmp (val .dataType , kDataTypeUi8 ) == 0 ||
201203 strcmp (val .dataType , kDataTypeUi16 ) == 0 ||
@@ -211,11 +213,11 @@ static const char *smcReadValue(io_connect_t conn, const UInt32Char_t key, doubl
211213 {
212214 * value = * (float * )(val .bytes );
213215 }
214- else if (strcmp (val .dataType , kDataTypeFp1f ) && val .dataSize == 2 )
216+ else if (strcmp (val .dataType , kDataTypeFp1f ) == 0 && val .dataSize == 2 )
215217 {
216218 * value = ntohs (* (uint16_t * )(val .bytes )) / 32768.0 ;
217219 }
218- else if (strcmp (val .dataType , kDataTypeFp4c ) && val .dataSize == 2 )
220+ else if (strcmp (val .dataType , kDataTypeFp4c ) == 0 && val .dataSize == 2 )
219221 {
220222 * value = ntohs (* (uint16_t * )(val .bytes )) / 4096.0 ;
221223 }
@@ -337,7 +339,7 @@ const char *ffDetectCoreTemps(enum FFTempType type, FFlist *result)
337339 case FF_TEMP_CPU_X64 :
338340 detectTemp (conn , "TC0D" , "CPU diode" , result );
339341 detectTemp (conn , "TC0E" , "CPU diode virtual" , result );
340- detectTemp (conn , "TC0E " , "CPU diode filtered" , result );
342+ detectTemp (conn , "TC0F " , "CPU diode filtered" , result );
341343 detectTemp (conn , "TC0P" , "CPU proximity" , result );
342344 break ;
343345
@@ -369,17 +371,14 @@ const char *ffDetectCoreTemps(enum FFTempType type, FFlist *result)
369371
370372 case FF_TEMP_GPU_INTEL :
371373 detectTemp (conn , "TCGC" , "GPU Intel Graphics" , result );
372- detectTemp (conn , "TG0D" , "GPU diode" , result );
373- detectTemp (conn , "TG0P" , "GPU proximity" , result );
374- break ;
374+ goto gpu_unknown ;
375375
376376 case FF_TEMP_GPU_AMD :
377377 detectTemp (conn , "TGDD" , "GPU AMD Radeon" , result );
378- detectTemp (conn , "TG0D" , "GPU diode" , result );
379- detectTemp (conn , "TG0P" , "GPU proximity" , result );
380- break ;
378+ goto gpu_unknown ;
381379
382380 case FF_TEMP_GPU_UNKNOWN : // Nvidia?
381+ gpu_unknown :
383382 detectTemp (conn , "TG0D" , "GPU diode" , result );
384383 detectTemp (conn , "TG0P" , "GPU proximity" , result );
385384 break ;
0 commit comments