Browse Source

media: cec-core: fix a bug at cec_error_inj_write()

If the adapter doesn't have error_inj_parse_line() ops, the
write() logic won't return -EINVAL, but, instead, it will keep
looping, because "count" is a non-negative number.

Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Mauro Carvalho Chehab 7 years ago
parent
commit
98c1ce0ccf
1 changed files with 3 additions and 3 deletions
  1. 3 3
      drivers/media/cec/cec-core.c

+ 3 - 3
drivers/media/cec/cec-core.c

@@ -209,14 +209,14 @@ static ssize_t cec_error_inj_write(struct file *file,
 	if (IS_ERR(buf))
 	if (IS_ERR(buf))
 		return PTR_ERR(buf);
 		return PTR_ERR(buf);
 	p = buf;
 	p = buf;
-	while (p && *p && count >= 0) {
+	while (p && *p) {
 		p = skip_spaces(p);
 		p = skip_spaces(p);
 		line = strsep(&p, "\n");
 		line = strsep(&p, "\n");
 		if (!*line || *line == '#')
 		if (!*line || *line == '#')
 			continue;
 			continue;
 		if (!adap->ops->error_inj_parse_line(adap, line)) {
 		if (!adap->ops->error_inj_parse_line(adap, line)) {
-			count = -EINVAL;
-			break;
+			kfree(buf);
+			return -EINVAL;
 		}
 		}
 	}
 	}
 	kfree(buf);
 	kfree(buf);