Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a684348 authored by Andy Walls's avatar Andy Walls Committed by Mauro Carvalho Chehab
Browse files

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: default avatarAndy Walls <awalls@radix.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent a5ca3a1b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;