|
@@ -1033,7 +1033,7 @@ static int si4713_write_econtrol_string(struct si4713_device *sdev,
|
|
char ps_name[MAX_RDS_PS_NAME + 1];
|
|
char ps_name[MAX_RDS_PS_NAME + 1];
|
|
|
|
|
|
len = control->size - 1;
|
|
len = control->size - 1;
|
|
- if (len > MAX_RDS_PS_NAME) {
|
|
|
|
|
|
+ if (len < 0 || len > MAX_RDS_PS_NAME) {
|
|
rval = -ERANGE;
|
|
rval = -ERANGE;
|
|
goto exit;
|
|
goto exit;
|
|
}
|
|
}
|
|
@@ -1057,7 +1057,7 @@ static int si4713_write_econtrol_string(struct si4713_device *sdev,
|
|
char radio_text[MAX_RDS_RADIO_TEXT + 1];
|
|
char radio_text[MAX_RDS_RADIO_TEXT + 1];
|
|
|
|
|
|
len = control->size - 1;
|
|
len = control->size - 1;
|
|
- if (len > MAX_RDS_RADIO_TEXT) {
|
|
|
|
|
|
+ if (len < 0 || len > MAX_RDS_RADIO_TEXT) {
|
|
rval = -ERANGE;
|
|
rval = -ERANGE;
|
|
goto exit;
|
|
goto exit;
|
|
}
|
|
}
|