Re: [PATCH] firedtv: add parameter to fake ca_system_ids in CA_INFO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mauro Carvalho Chehab wrote:
> Stefan Richter wrote:
> 
>> The Digital Everywhere firmware have the shortcoming that ca_info_enq and
>> ca_info are not supported. This means that we can never retrieve the correct
>> ca_system_id to present in the CI message CA_INFO. Currently the driver uses
>> the application id retrieved using app_info_req and app_info, but this id
>> only match the correct ca_system_id as given in ca_info in some cases.
>> This patch adds a parameter to the driver in order for the user to override
>> what will be returned in the CA_INFO CI message. Up to four ca_system_ids can
>> be specified.
>> This is needed for users with CAMs that have different manufacturer id and
>> ca_system_id and that uses applications that take this into account, like
>> MythTV.
> 
> This seems an ugly workaround. The better seems to patch MythTV to accept a different
> CAM.

Ugly it is, for sure.  Can't comment on application-level solutions; if
thats the proper layer at which to address this, then that would be
preferable of course.

>> +static int num_fake_ca_system_ids;
> ...
>> +		for (i = 0; i < num_fake_ca_system_ids; i++) {
>> +			app_info[4 + i * 2] =
>> +				(fake_ca_system_ids[i] >> 8) & 0xff;
> ...
> 
> NAK. If someone put an arbitrary high value for num_fake_ca_system_id's, it will write outside
> the app_info array space, as the num_fake_ca_system_ids is not validated against the size
> of app_info.

That's what I thought at first look at the patch too, but then I noticed
that inlcude/linux/moduleparam.h and kernel/params.c properly track
kparam_arry.max = ARRAY_SIZE(array).
http://lxr.linux.no/#linux+v2.6.33/include/linux/moduleparam.h#L62
http://lxr.linux.no/#linux+v2.6.33/include/linux/moduleparam.h#L213
http://lxr.linux.no/#linux+v2.6.33/kernel/params.c#L351
http://lxr.linux.no/#linux+v2.6.33/kernel/params.c#L296

So no danger here.

> Also, it makes no sense a negative value for this parameter.

I already posted an updated version of the patch which correctly defines
num_fake_ca_system_ids as an unsigned long.
-- 
Stefan Richter
-=====-==-=- --== --==-
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux