4646#define min (a ,b ) ((a) < (b) ? (a) : (b))
4747#define max (a ,b ) ((a) > (b) ? (a) : (b))
4848
49- int min_fan_speed = 2000 ;
50- int max_fan_speed = 6200 ;
49+ // TODO: per-fan minimum and maximum?
50+ int min_fan_speed = -1 ;
51+ int max_fan_speed = -1 ;
5152
5253/* temperature thresholds
5354 * low_temp - temperature below which fan speed will be at minimum
@@ -63,8 +64,7 @@ t_sensors* sensors = NULL;
6364t_fans * fans = NULL ;
6465
6566
66- static char * smprintf (const char * fmt , ...) __attribute__((format (printf , 1 , 2 )));
67- static char * smprintf (const char * fmt , ...)
67+ char * smprintf (const char * fmt , ...)
6868{
6969 char * buf ;
7070 int cnt ;
@@ -498,6 +498,17 @@ void mbpfan()
498498
499499 retrieve_settings (NULL );
500500
501+ if (min_fan_speed > max_fan_speed ) {
502+ syslog (LOG_INFO , "Invalid fan speeds: %d %d" , min_fan_speed , max_fan_speed );
503+ printf ("Invalid fan speeds: %d %d\n" , min_fan_speed , max_fan_speed );
504+ exit (EXIT_FAILURE );
505+ }
506+ if (low_temp > high_temp || high_temp > max_temp ) {
507+ syslog (LOG_INFO , "Invalid temperatures: %d %d %d" , low_temp , high_temp , max_temp );
508+ printf ("Invalid temperatures: %d %d %d\n" , low_temp , high_temp , max_temp );
509+ exit (EXIT_FAILURE );
510+ }
511+
501512 sensors = retrieve_sensors ();
502513 fans = retrieve_fans ();
503514 set_fans_man (fans );
0 commit comments