@@ -566,6 +566,8 @@ static int applesmc_init_smcreg_try(void)
566
566
if (ret )
567
567
return ret ;
568
568
s -> fan_count = tmp [0 ];
569
+ if (s -> fan_count > 10 )
570
+ s -> fan_count = 10 ;
569
571
570
572
ret = applesmc_get_lower_bound (& s -> temp_begin , "T" );
571
573
if (ret )
@@ -811,7 +813,8 @@ static ssize_t applesmc_show_fan_speed(struct device *dev,
811
813
char newkey [5 ];
812
814
u8 buffer [2 ];
813
815
814
- sprintf (newkey , fan_speed_fmt [to_option (attr )], to_index (attr ));
816
+ scnprintf (newkey , sizeof (newkey ), fan_speed_fmt [to_option (attr )],
817
+ to_index (attr ));
815
818
816
819
ret = applesmc_read_key (newkey , buffer , 2 );
817
820
speed = ((buffer [0 ] << 8 | buffer [1 ]) >> 2 );
@@ -834,7 +837,8 @@ static ssize_t applesmc_store_fan_speed(struct device *dev,
834
837
if (kstrtoul (sysfsbuf , 10 , & speed ) < 0 || speed >= 0x4000 )
835
838
return - EINVAL ; /* Bigger than a 14-bit value */
836
839
837
- sprintf (newkey , fan_speed_fmt [to_option (attr )], to_index (attr ));
840
+ scnprintf (newkey , sizeof (newkey ), fan_speed_fmt [to_option (attr )],
841
+ to_index (attr ));
838
842
839
843
buffer [0 ] = (speed >> 6 ) & 0xff ;
840
844
buffer [1 ] = (speed << 2 ) & 0xff ;
@@ -903,7 +907,7 @@ static ssize_t applesmc_show_fan_position(struct device *dev,
903
907
char newkey [5 ];
904
908
u8 buffer [17 ];
905
909
906
- sprintf (newkey , FAN_ID_FMT , to_index (attr ));
910
+ scnprintf (newkey , sizeof ( newkey ) , FAN_ID_FMT , to_index (attr ));
907
911
908
912
ret = applesmc_read_key (newkey , buffer , 16 );
909
913
buffer [16 ] = 0 ;
@@ -1116,7 +1120,8 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
1116
1120
}
1117
1121
for (i = 0 ; i < num ; i ++ ) {
1118
1122
node = & grp -> nodes [i ];
1119
- sprintf (node -> name , grp -> format , i + 1 );
1123
+ scnprintf (node -> name , sizeof (node -> name ), grp -> format ,
1124
+ i + 1 );
1120
1125
node -> sda .index = (grp -> option << 16 ) | (i & 0xffff );
1121
1126
node -> sda .dev_attr .show = grp -> show ;
1122
1127
node -> sda .dev_attr .store = grp -> store ;
0 commit comments