Re: Bug in S2 API...

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

 



On Mon, Sep 21, 2009 at 6:10 AM, hermann pitton <hermann-pitton@xxxxxxxx> wrote:
>
> Am Montag, den 21.09.2009, 06:09 +0200 schrieb Markus Rechberger:
>> On Mon, Sep 21, 2009 at 5:46 AM, hermann pitton <hermann-pitton@xxxxxxxx> wrote:
>> >
>> > Am Montag, den 21.09.2009, 05:40 +0200 schrieb Markus Rechberger:
>> >> while porting the S2api to userspace I came accross the S2-API definition itself
>> >>
>> >> #define FE_SET_PROPERTY            _IOW('o', 82, struct dtv_properties)
>> >> #define FE_GET_PROPERTY            _IOR('o', 83, struct dtv_properties)
>> >>
>> >> while looking at this, FE_GET_PROPERTY should very likely be _IOWR
>> >>
>> >> in dvb-frontend.c:
>> >> ----
>> >>         if(cmd == FE_GET_PROPERTY) {
>> >>
>> >>                 tvps = (struct dtv_properties __user *)parg;
>> >>
>> >>                 dprintk("%s() properties.num = %d\n", __func__, tvps->num);
>> >>                 dprintk("%s() properties.props = %p\n", __func__, tvps->props);
>> >>                 ...
>> >>                 if (copy_from_user(tvp, tvps->props, tvps->num *
>> >> sizeof(struct dtv_property)))
>> >> ----
>> >>
>> >> Regards,
>> >> Markus
>> >
>> > Seems to be a big issue.
>> >
>> > Why you ever want to write to a get property?
>> >
>>
>> to read out the API version for example.
>> tvps->num is also used in order to check the boundaries of the property array.
>>
>> Markus
>
> Their are no writes allowed to manipulate get properties.
>

the writes are needed in order to submit tvps->num, although _IOR will
work _IOWR is the correct one in that case, aside of that you can just
compare it with other calls (eg. v4l2), the ENUM calls are all _IOWR.
They submit the index and retrieve the rest.

Markus
--
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