blob: ba66aae1e673559fb780ce2913f8fada0686f529 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
From 388ef67707f01fe4ad337642325ae974dd81c242 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Wed, 22 Jul 2020 02:45:00 -0600
Subject: [PATCH 1/2] virtio host input: use safe 64-bit time accessors for
input_event
On 32-bit systems with 64-bit time_t, input_event.time is not
directly accessible. Instead, we must use input_event_sec and
input_event_usec accessors to set the time values.
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
---
hw/input/virtio-input-host.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/input/virtio-input-host.c b/hw/input/virtio-input-host.c
index 85daf73f1a..7b81bf09f5 100644
--- a/hw/input/virtio-input-host.c
+++ b/hw/input/virtio-input-host.c
@@ -193,13 +193,16 @@ static void virtio_input_host_handle_status(VirtIOInput *vinput,
{
VirtIOInputHost *vih = VIRTIO_INPUT_HOST(vinput);
struct input_event evdev;
+ struct timeval tv;
int rc;
- if (gettimeofday(&evdev.time, NULL)) {
+ if (gettimeofday(&tv, NULL)) {
perror("virtio_input_host_handle_status: gettimeofday");
return;
}
+ evdev.input_event_sec = tv.tv_sec;
+ evdev.input_event_usec = tv.tv_usec;
evdev.type = le16_to_cpu(event->type);
evdev.code = le16_to_cpu(event->code);
evdev.value = le32_to_cpu(event->value);
--
2.27.0
|