evdev.c: fix decoding of struct input_absinfo
* evdev.c (abs_ioctl): Use umove_or_printaddr.
This commit is contained in:
parent
3a45eb3711
commit
e167006908
32
evdev.c
32
evdev.c
@ -144,24 +144,34 @@ ff_effect_ioctl(struct tcb *tcp, long arg)
|
|||||||
static int
|
static int
|
||||||
abs_ioctl(struct tcb *tcp, long arg)
|
abs_ioctl(struct tcb *tcp, long arg)
|
||||||
{
|
{
|
||||||
|
tprints(", ");
|
||||||
|
|
||||||
struct input_absinfo absinfo;
|
struct input_absinfo absinfo;
|
||||||
|
|
||||||
if (!verbose(tcp) || umove(tcp, arg, &absinfo) < 0)
|
if (!umove_or_printaddr(tcp, arg, &absinfo)) {
|
||||||
return 0;
|
tprintf("{value=%u"
|
||||||
|
", minimum=%u, ",
|
||||||
|
absinfo.value,
|
||||||
|
absinfo.minimum);
|
||||||
|
|
||||||
tprintf(", {value=%" PRIu32 ", minimum=%" PRIu32,
|
if (!abbrev(tcp)) {
|
||||||
absinfo.value, absinfo.minimum);
|
tprintf("maximum=%u"
|
||||||
if (!abbrev(tcp)) {
|
", fuzz=%u"
|
||||||
tprintf(", maximum=%" PRIu32 ", fuzz=%" PRIu32,
|
", flat=%u",
|
||||||
absinfo.maximum, absinfo.fuzz);
|
absinfo.maximum,
|
||||||
tprintf(", flat=%" PRIu32, absinfo.flat);
|
absinfo.fuzz,
|
||||||
|
absinfo.flat);
|
||||||
# ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION
|
# ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION
|
||||||
tprintf(", resolution=%" PRIu32, absinfo.resolution);
|
tprintf(", resolution=%u",
|
||||||
|
absinfo.resolution);
|
||||||
# endif
|
# endif
|
||||||
|
} else {
|
||||||
|
tprints("...");
|
||||||
|
}
|
||||||
|
|
||||||
tprints("}");
|
tprints("}");
|
||||||
} else {
|
|
||||||
tprints(", ...}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user