summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/inputs-channel.c1
-rw-r--r--server/reds.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/server/inputs-channel.c b/server/inputs-channel.c
index e346829a..d0853a98 100644
--- a/server/inputs-channel.c
+++ b/server/inputs-channel.c
@@ -708,6 +708,7 @@ int inputs_channel_set_tablet(InputsChannel *inputs, SpiceTabletInstance *tablet
int inputs_channel_has_tablet(InputsChannel *inputs)
{
+ spice_return_val_if_fail(inputs != NULL, FALSE);
return !!inputs->tablet;
}
diff --git a/server/reds.c b/server/reds.c
index aa8bbc46..84b6da52 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -558,7 +558,9 @@ static void reds_update_mouse_mode(RedsState *reds)
int allowed = 0;
int qxl_count = red_dispatcher_qxl_count();
- if ((agent_mouse && vdagent) || (inputs_channel_has_tablet(reds->inputs_channel) && qxl_count == 1)) {
+ if ((agent_mouse && vdagent) ||
+ ((reds->inputs_channel && inputs_channel_has_tablet(reds->inputs_channel)) &&
+ qxl_count == 1)) {
allowed = reds->dispatcher_allows_client_mouse;
}
if (allowed == reds->is_client_mouse_allowed) {