|
@@ -2384,7 +2384,13 @@ static int dvb_frontend_ioctl_legacy(struct file *file,
|
|
|
|
|
|
|
|
case FE_DISEQC_SEND_MASTER_CMD:
|
|
case FE_DISEQC_SEND_MASTER_CMD:
|
|
|
if (fe->ops.diseqc_send_master_cmd) {
|
|
if (fe->ops.diseqc_send_master_cmd) {
|
|
|
- err = fe->ops.diseqc_send_master_cmd(fe, (struct dvb_diseqc_master_cmd*) parg);
|
|
|
|
|
|
|
+ struct dvb_diseqc_master_cmd *cmd = parg;
|
|
|
|
|
+
|
|
|
|
|
+ if (cmd->msg_len > sizeof(cmd->msg)) {
|
|
|
|
|
+ err = -EINVAL;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ err = fe->ops.diseqc_send_master_cmd(fe, cmd);
|
|
|
fepriv->state = FESTATE_DISEQC;
|
|
fepriv->state = FESTATE_DISEQC;
|
|
|
fepriv->status = 0;
|
|
fepriv->status = 0;
|
|
|
}
|
|
}
|