summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-10-08 13:06:41 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-10-08 13:16:35 +1000
commitb3244827d97c6659842544b9cc175631e13ae8f3 (patch)
tree85a281282902a138e93e2a7ffab8b0a0e3d820b4
parent3370b6b6a41a27123a45b95ba4820395127c84e7 (diff)
Fix ioctl return value handling
Found by coverity Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/v4l.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/v4l.c b/src/v4l.c
index 8c2408c..9c6fabe 100644
--- a/src/v4l.c
+++ b/src/v4l.c
@@ -769,12 +769,15 @@ V4lSetPortAttribute(ScrnInfoPtr pScrn,
} else if (attribute == xvFreq) {
struct v4l2_frequency freq;
memset(&freq, 0, sizeof(freq));
- ioctl(V4L_FD, VIDIOC_G_FREQUENCY, &freq);
- freq.frequency = value;
- if (ioctl(V4L_FD, VIDIOC_S_FREQUENCY, &freq) == -1)
- xf86Msg(X_ERROR, "v4l: Error %d while setting frequency\n", errno);
- else
- ret = Success;
+ if (ioctl(V4L_FD, VIDIOC_G_FREQUENCY, &freq) == -1) {
+ xf86Msg(X_ERROR, "v4l: Error %d while getting frequency\n", errno);
+ } else {
+ freq.frequency = value;
+ if (ioctl(V4L_FD, VIDIOC_S_FREQUENCY, &freq) == -1)
+ xf86Msg(X_ERROR, "v4l: Error %d while setting frequency\n", errno);
+ else
+ ret = Success;
+ }
} else {
for (i = 0; i < pPPriv->n_qctrl; i++)
if (pPPriv->XvV4LCtrl[i].xv == attribute)