mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-06 12:09:21 +00:00
ui/input-linux: Do not ignore ioctl() return value
Fix warnings reported by Clang static code analyzer: CC ui/input-linux.o ui/input-linux.c:343:9: warning: Value stored to 'rc' is never read rc = ioctl(il->fd, EVIOCGBIT(EV_REL, sizeof(relmap)), &relmap); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ui/input-linux.c:351:9: warning: Value stored to 'rc' is never read rc = ioctl(il->fd, EVIOCGBIT(EV_ABS, sizeof(absmap)), &absmap); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ui/input-linux.c:354:13: warning: Value stored to 'rc' is never read rc = ioctl(il->fd, EVIOCGABS(ABS_X), &absinfo); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ui/input-linux.c:357:13: warning: Value stored to 'rc' is never read rc = ioctl(il->fd, EVIOCGABS(ABS_Y), &absinfo); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ui/input-linux.c:365:9: warning: Value stored to 'rc' is never read rc = ioctl(il->fd, EVIOCGBIT(EV_KEY, sizeof(keymap)), keymap); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ui/input-linux.c:366:9: warning: Value stored to 'rc' is never read rc = ioctl(il->fd, EVIOCGKEY(sizeof(keystate)), keystate); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reported-by: Clang Static Analyzer Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Message-id: 20200322161219.17757-1-philmd@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
736cf607e4
commit
112c37a6a6
@ -334,13 +334,15 @@ static void input_linux_complete(UserCreatable *uc, Error **errp)
|
|||||||
|
|
||||||
rc = ioctl(il->fd, EVIOCGBIT(0, sizeof(evtmap)), &evtmap);
|
rc = ioctl(il->fd, EVIOCGBIT(0, sizeof(evtmap)), &evtmap);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
error_setg(errp, "%s: failed to read event bits", il->evdev);
|
goto err_read_event_bits;
|
||||||
goto err_close;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (evtmap & (1 << EV_REL)) {
|
if (evtmap & (1 << EV_REL)) {
|
||||||
relmap = 0;
|
relmap = 0;
|
||||||
rc = ioctl(il->fd, EVIOCGBIT(EV_REL, sizeof(relmap)), &relmap);
|
rc = ioctl(il->fd, EVIOCGBIT(EV_REL, sizeof(relmap)), &relmap);
|
||||||
|
if (rc < 0) {
|
||||||
|
goto err_read_event_bits;
|
||||||
|
}
|
||||||
if (relmap & (1 << REL_X)) {
|
if (relmap & (1 << REL_X)) {
|
||||||
il->has_rel_x = true;
|
il->has_rel_x = true;
|
||||||
}
|
}
|
||||||
@ -349,12 +351,25 @@ static void input_linux_complete(UserCreatable *uc, Error **errp)
|
|||||||
if (evtmap & (1 << EV_ABS)) {
|
if (evtmap & (1 << EV_ABS)) {
|
||||||
absmap = 0;
|
absmap = 0;
|
||||||
rc = ioctl(il->fd, EVIOCGBIT(EV_ABS, sizeof(absmap)), &absmap);
|
rc = ioctl(il->fd, EVIOCGBIT(EV_ABS, sizeof(absmap)), &absmap);
|
||||||
|
if (rc < 0) {
|
||||||
|
goto err_read_event_bits;
|
||||||
|
}
|
||||||
if (absmap & (1 << ABS_X)) {
|
if (absmap & (1 << ABS_X)) {
|
||||||
il->has_abs_x = true;
|
il->has_abs_x = true;
|
||||||
rc = ioctl(il->fd, EVIOCGABS(ABS_X), &absinfo);
|
rc = ioctl(il->fd, EVIOCGABS(ABS_X), &absinfo);
|
||||||
|
if (rc < 0) {
|
||||||
|
error_setg(errp, "%s: failed to get get absolute X value",
|
||||||
|
il->evdev);
|
||||||
|
goto err_close;
|
||||||
|
}
|
||||||
il->abs_x_min = absinfo.minimum;
|
il->abs_x_min = absinfo.minimum;
|
||||||
il->abs_x_max = absinfo.maximum;
|
il->abs_x_max = absinfo.maximum;
|
||||||
rc = ioctl(il->fd, EVIOCGABS(ABS_Y), &absinfo);
|
rc = ioctl(il->fd, EVIOCGABS(ABS_Y), &absinfo);
|
||||||
|
if (rc < 0) {
|
||||||
|
error_setg(errp, "%s: failed to get get absolute Y value",
|
||||||
|
il->evdev);
|
||||||
|
goto err_close;
|
||||||
|
}
|
||||||
il->abs_y_min = absinfo.minimum;
|
il->abs_y_min = absinfo.minimum;
|
||||||
il->abs_y_max = absinfo.maximum;
|
il->abs_y_max = absinfo.maximum;
|
||||||
}
|
}
|
||||||
@ -363,7 +378,14 @@ static void input_linux_complete(UserCreatable *uc, Error **errp)
|
|||||||
if (evtmap & (1 << EV_KEY)) {
|
if (evtmap & (1 << EV_KEY)) {
|
||||||
memset(keymap, 0, sizeof(keymap));
|
memset(keymap, 0, sizeof(keymap));
|
||||||
rc = ioctl(il->fd, EVIOCGBIT(EV_KEY, sizeof(keymap)), keymap);
|
rc = ioctl(il->fd, EVIOCGBIT(EV_KEY, sizeof(keymap)), keymap);
|
||||||
|
if (rc < 0) {
|
||||||
|
goto err_read_event_bits;
|
||||||
|
}
|
||||||
rc = ioctl(il->fd, EVIOCGKEY(sizeof(keystate)), keystate);
|
rc = ioctl(il->fd, EVIOCGKEY(sizeof(keystate)), keystate);
|
||||||
|
if (rc < 0) {
|
||||||
|
error_setg(errp, "%s: failed to get global key state", il->evdev);
|
||||||
|
goto err_close;
|
||||||
|
}
|
||||||
for (i = 0; i < KEY_CNT; i++) {
|
for (i = 0; i < KEY_CNT; i++) {
|
||||||
if (keymap[i / 8] & (1 << (i % 8))) {
|
if (keymap[i / 8] & (1 << (i % 8))) {
|
||||||
if (linux_is_button(i)) {
|
if (linux_is_button(i)) {
|
||||||
@ -390,6 +412,9 @@ static void input_linux_complete(UserCreatable *uc, Error **errp)
|
|||||||
il->initialized = true;
|
il->initialized = true;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
err_read_event_bits:
|
||||||
|
error_setg(errp, "%s: failed to read event bits", il->evdev);
|
||||||
|
|
||||||
err_close:
|
err_close:
|
||||||
close(il->fd);
|
close(il->fd);
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user