[PATCH] ephyr: Avoid a segfault with 'DISPLAY= Xephy -glamor'
Jon TURNEY
jon.turney at dronecode.org.uk
Mon Feb 9 06:09:32 PST 2015
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.
More information about the xorg-devel
mailing list