diff options
-rw-r--r-- | drivers/media/firewire/firedtv-avc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/firewire/firedtv-avc.c b/drivers/media/firewire/firedtv-avc.c index ac17567f0822..251a556112a9 100644 --- a/drivers/media/firewire/firedtv-avc.c +++ b/drivers/media/firewire/firedtv-avc.c @@ -1157,7 +1157,7 @@ int avc_ca_pmt(struct firedtv *fdtv, char *msg, int length) if (pmt_cmd_id != 1 && pmt_cmd_id != 4) dev_err(fdtv->device, "invalid pmt_cmd_id %d\n", pmt_cmd_id); - if (program_info_length > sizeof(c->operand) - write_pos) { + if (program_info_length > sizeof(c->operand) - 4 - write_pos) { ret = -EINVAL; goto out; } @@ -1184,7 +1184,8 @@ int avc_ca_pmt(struct firedtv *fdtv, char *msg, int length) dev_err(fdtv->device, "invalid pmt_cmd_id %d " "at stream level\n", pmt_cmd_id); - if (es_info_length > sizeof(c->operand) - write_pos) { + if (es_info_length > sizeof(c->operand) - 4 - + write_pos) { ret = -EINVAL; goto out; } |