Hi!

This bit me while trying to use absolute exposure time on Nokia N900:

Can someone apply it to libv4l2 tree? Could I get some feedback on the
other patches? Is this the way to submit patches to libv4l2?

Thanks,
                                                                Pavel

commit 0484e39ec05fdc644191e7c334a7ebfff9cb2ec5
Author: Pavel <pa...@ucw.cz>
Date:   Mon May 8 21:52:02 2017 +0200

    Fix integer overflow with EXPOSURE_ABSOLUTE.

diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c
index e795aee..189fc06 100644
--- a/lib/libv4l2/libv4l2.c
+++ b/lib/libv4l2/libv4l2.c
@@ -1776,7 +1776,7 @@ int v4l2_set_control(int fd, int cid, int value)
                if (qctrl.type == V4L2_CTRL_TYPE_BOOLEAN)
                        ctrl.value = value ? 1 : 0;
                else
-                       ctrl.value = (value * (qctrl.maximum - qctrl.minimum) + 
32767) / 65535 +
+                       ctrl.value = ((long long) value * (qctrl.maximum - 
qctrl.minimum) + 32767) / 65535 +
                                qctrl.minimum;
 
                result = v4lconvert_vidioc_s_ctrl(devices[index].convert, 
&ctrl);
@@ -1812,7 +1812,7 @@ int v4l2_get_control(int fd, int cid)
                if (v4l2_propagate_ioctl(index, VIDIOC_G_CTRL, &ctrl))
                        return -1;
 
-       return ((ctrl.value - qctrl.minimum) * 65535 +
+       return (((long long) ctrl.value - qctrl.minimum) * 65535 +
                        (qctrl.maximum - qctrl.minimum) / 2) /
                (qctrl.maximum - qctrl.minimum);
 }


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature

Reply via email to