[ 
https://issues.apache.org/jira/browse/GUACAMOLE-240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15930462#comment-15930462
 ] 

Michael Jumper commented on GUACAMOLE-240:
------------------------------------------

To answer the question of how this could possibly have worked before, there 
were four cases which occurred previously:

# {{guac_pa_stream*}} used as {{guac_pa_stream*}} (clearly OK)
# {{guac_client*}} used as {{guac_client*}} (inconsistent but clearly OK)
# {{guac_pa_stream*}} used as {{guac_client*}} (BAD!)
# {{guac_pa_stream*}} cast to {{guac_client*}} and passed to another callback 
which ultimately used it as {{guac_pa_stream*}} anyway (not OK, but clearly 
would work)

In the "BAD!" case above, the only usages of {{guac_pa_stream*}} as a 
{{guac_client*}} were through calls to {{guac_client_log()}}. This definitely 
will segfault, but apparently often didn't in practice due to the likelihood of 
{{((guac_client*) not_actually_guac_client)->log_handler}} happening to be NULL.

> Wrong structures passed to PulseAudio callbacks
> -----------------------------------------------
>
>                 Key: GUACAMOLE-240
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-240
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-server
>    Affects Versions: 0.9.12-incubating
>            Reporter: Michael Jumper
>            Assignee: Michael Jumper
>            Priority: Blocker
>             Fix For: 0.9.12-incubating
>
>
> The arbitrary data provided for callbacks given to the PulseAudio library are 
> supposed to all be {{guac_pa_stream*}} ... but this is not the case. Several 
> of these callbacks are given pointers to {{guac_client}}, and others continue 
> to cast to {{guac_client*}} even though they are actually given 
> {{guac_pa_stream*}}. This leads to segfaults when those callbacks are invoked.
> *NOTE:* This is a regression due to GUACAMOLE-179.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to