wl drag start - check source ptr consistently

fix CID 1403926
This commit is contained in:
Carsten Haitzler 2019-08-06 19:11:24 +01:00
parent 3a581f888d
commit c9356a3f8c
1 changed files with 4 additions and 2 deletions

View File

@ -488,10 +488,11 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour
sel_source = (E_Comp_Wl_Data_Source *)e_comp_wl->selection.data_source;
if (sel_source && (e_comp_wl->selection.serial - serial < UINT32_MAX / 2))
{
if (!serial)
if ((source) && (!serial))
{
/* drm canvas will always have serial 0 */
pid_t pid;
wl_client_get_credentials(wl_resource_get_client(source->resource), &pid, NULL, NULL);
if (pid != getpid()) return;
}
@ -509,7 +510,8 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour
e_comp_wl->selection.data_source = sel_source = source;
e_comp_wl->clipboard.xwl_owner = 0;
source->serial = e_comp_wl->selection.serial = serial;
e_comp_wl->selection.serial = serial;
if (source) source->serial = serial;
if (e_comp_wl->kbd.enabled)
focus = e_comp_wl->kbd.focus;