[PATCH] ephyr: Avoid a segfault with 'DISPLAY= Xephy -glamor'
Eric Anholt
eric at anholt.net
Tue Mar 24 12:08:26 PDT 2015
Daniel Martin <consume.noise at gmail.com> writes:
> On 9 February 2015 at 15:09, Jon TURNEY <jon.turney at dronecode.org.uk> wrote:
>> On 09/02/2015 14:03, Daniel Martin wrote:
>>>
>>> On 9 February 2015 at 14:45, Jon TURNEY <jon.turney at dronecode.org.uk>
>>> wrote:
>>>>
>>>> ephyr_glamor_connect() returns NULL if we failed, but applying
>>>> xcb_connection_has_error() to NULL is not permitted.
>>>>
>>>> Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
>>>> ---
>>>> hw/kdrive/ephyr/hostx.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
>>>> index f64861b..15edce8 100644
>>>> --- a/hw/kdrive/ephyr/hostx.c
>>>> +++ b/hw/kdrive/ephyr/hostx.c
>>>> @@ -443,7 +443,7 @@ hostx_init(void)
>>>> else
>>>> #endif
>>>> HostX.conn = xcb_connect(NULL, &HostX.screen);
>>>> - if (xcb_connection_has_error(HostX.conn)) {
>>>> + if (!HostX.conn || xcb_connection_has_error(HostX.conn)) {
>>>
>>>
>>> No need to change the check, as xcb_connect() ...
>>> "Always returns a non-NULL pointer to a xcb_connection_t, even on
>>> failure."
>>> http://cgit.freedesktop.org/xcb/libxcb/tree/src/xcb.h#n549
>>
>>
>> I'm afraid you need to look at a little more context than is in the diff.
>>
>> If glamor is enabled, HostX.conn contains the result of
>> ephyr_glamor_connect(), not xcb_connect(), which can be NULL.
>>
>
> Ah, I see. Another way to fix it would have been to return such an
> error from ephyr_glamor_connect() like xcb_connect() would do. But,
> that be more complicated then this simple check ...
>
> Reviewed-by: Daniel Martin <consume.noise at gmail.com>
Thanks! Applied to -next.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20150324/bfa4638c/attachment.sig>
More information about the xorg-devel
mailing list