[PATCH 4/5] protocol-native: add access checks

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

 




On 2015-04-07 17:13, Wim Taymans wrote:
> +static void check_access_finish_cb(pa_access_data *data, bool res) {
> +    pa_protocol_native_access_data *d = (pa_protocol_native_access_data *) data;
> +    pa_native_connection *c = PA_NATIVE_CONNECTION(d->userdata);
> +
> +    if (!res) {
> +        pa_pstream_send_error(c->pstream, d->tag, PA_ERR_ACCESS); \
> +        goto finish;
> +    }
> +
> +    /* call the dispatcher again, hopefully this time, the access check will
> +     * fail or succeed immediately */
> +    command_table[d->command](d->pd, d->command, d->tag, d->tc, d->userdata);

While testing this code, it wasn't working. You have to re-read the 
command and the tag, just like pdispatch_run does.

I e, like this:

     pa_assert_se(pa_tagstruct_getu32(d->tc, &command) >= 0);
     pa_assert_se(pa_tagstruct_getu32(d->tc, &tag) >= 0);
     pa_assert(command == d->command);
     pa_assert(tag == d->tag);

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux