summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-07-05 16:22:45 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-07-05 19:21:49 -0300
commit0a6843483c256c859cd9542361812a29403f0fb5 (patch)
tree910e6cb0b1dda85e11025e01d67673232398008e
parenta5ca3a1bc719cb9056acc6f24340a1e2674f21a0 (diff)
downloadlinux-3.10-0a6843483c256c859cd9542361812a29403f0fb5.tar.gz
linux-3.10-0a6843483c256c859cd9542361812a29403f0fb5.tar.bz2
linux-3.10-0a6843483c256c859cd9542361812a29403f0fb5.zip
V4L/DVB (12206): get_dvb_firmware: Correct errors in MPC718 firmware extraction logic
The extraction routine for the MPC718 "firmware" had 2 bugs in it, where one bug masked the effect of the other. The loop iteration should have set $prevlen = $currlen at the end of the loop, and the if() check should have used && instead of || for deciding if the firmware length is reasonable. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/dvb/get_dvb_firmware3
1 files changed, 2 insertions, 1 deletions
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware
index 64174d6258f..3d1b0ab70c8 100644
--- a/Documentation/dvb/get_dvb_firmware
+++ b/Documentation/dvb/get_dvb_firmware
@@ -413,13 +413,14 @@ sub mpc718 {
while (<IN>) {
$currlen = length($_);
- if ($prevlen == $currlen || $currlen <= 64) {
+ if ($prevlen == $currlen && $currlen <= 64) {
chop; chop; # Get rid of "TUNER GO"
s/^\0\0//; # get rid of leading 00 00 if it's there
printf OUT "$_";
$found = 1;
last;
}
+ $prevlen = $currlen;
}
}
close OUT;