This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: v4l2-ctl/compliance: pad field wasn't zeroed for dv_timings ioctls
Author:  Hans Verkuil <[email protected]>
Date:    Tue Mar 22 09:04:41 2016 +0100

The ENUM_DV_TIMINGS and DV_TIMINGS_CAP ioctls require that the pad
field is set to 0. This wasn't done, so fix this.

Signed-off-by: Hans Verkuil <[email protected]>

 utils/v4l2-compliance/cv4l-helpers.h          | 2 ++
 utils/v4l2-compliance/v4l2-test-io-config.cpp | 2 ++
 utils/v4l2-ctl/v4l2-ctl-stds.cpp              | 8 +++-----
 3 files changed, 7 insertions(+), 5 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=b19131f87740c64e14f994d8574d7d7f9b109f9b
diff --git a/utils/v4l2-compliance/cv4l-helpers.h 
b/utils/v4l2-compliance/cv4l-helpers.h
index d8185627da6e..bac6e6bd3e53 100644
--- a/utils/v4l2-compliance/cv4l-helpers.h
+++ b/utils/v4l2-compliance/cv4l-helpers.h
@@ -333,6 +333,8 @@ public:
 
        int dv_timings_cap(v4l2_dv_timings_cap &cap)
        {
+               cap.pad = 0;
+               memset(cap.reserved, 0, sizeof(cap.reserved));
                return cv4l_ioctl(VIDIOC_DV_TIMINGS_CAP, &cap);
        }
 
diff --git a/utils/v4l2-compliance/v4l2-test-io-config.cpp 
b/utils/v4l2-compliance/v4l2-test-io-config.cpp
index f4ff9e9d827a..e2a2c1fdadd8 100644
--- a/utils/v4l2-compliance/v4l2-test-io-config.cpp
+++ b/utils/v4l2-compliance/v4l2-test-io-config.cpp
@@ -179,6 +179,7 @@ static int checkTimings(struct node *node, bool 
has_timings, bool is_input)
                memset(&enumtimings, 0xff, sizeof(enumtimings));
 
                enumtimings.index = i;
+               enumtimings.pad = 0;
                ret = doioctl(node, VIDIOC_ENUM_DV_TIMINGS, &enumtimings);
                if (ret)
                        break;
@@ -263,6 +264,7 @@ static int checkTimingsCap(struct node *node, bool 
has_timings)
        int ret;
 
        memset(&timingscap, 0xff, sizeof(timingscap));
+       timingscap.pad = 0;
        ret = doioctl(node, VIDIOC_DV_TIMINGS_CAP, &timingscap);
        if (ret && has_timings)
                return fail("TIMINGS cap set, but could not get timings 
caps\n");
diff --git a/utils/v4l2-ctl/v4l2-ctl-stds.cpp b/utils/v4l2-ctl/v4l2-ctl-stds.cpp
index d7c775ea9e5e..88b046a9e70b 100644
--- a/utils/v4l2-ctl/v4l2-ctl-stds.cpp
+++ b/utils/v4l2-ctl/v4l2-ctl-stds.cpp
@@ -505,13 +505,12 @@ void stds_set(int fd)
        }
 
        if (options[OptSetDvBtTimings]) {
-               struct v4l2_enum_dv_timings et;
+               struct v4l2_enum_dv_timings et = {};
                struct v4l2_dv_timings new_dv_timings = {};
 
                if (query_and_set_dv_timings)
                        doioctl(fd, VIDIOC_QUERY_DV_TIMINGS, &new_dv_timings);
                else if (enum_and_set_dv_timings >= 0) {
-                       memset(&et, 0, sizeof(et));
                        et.index = enum_and_set_dv_timings;
                        doioctl(fd, VIDIOC_ENUM_DV_TIMINGS, &et);
                        new_dv_timings = et.timings;
@@ -600,7 +599,7 @@ void stds_get(int fd)
        }
 
        if (options[OptGetDvTimingsCap]) {
-               struct v4l2_dv_timings_cap dv_timings_cap;
+               struct v4l2_dv_timings_cap dv_timings_cap = {};
 
                if (doioctl(fd, VIDIOC_DV_TIMINGS_CAP, &dv_timings_cap) >= 0) {
                        static const flag_def dv_caps_def[] = {
@@ -670,9 +669,8 @@ void stds_list(int fd)
        }
 
        if (options[OptListDvTimings]) {
-               struct v4l2_enum_dv_timings dv_enum_timings;
+               struct v4l2_enum_dv_timings dv_enum_timings = {};
 
-               dv_enum_timings.index = 0;
                printf("ioctl: VIDIOC_ENUM_DV_TIMINGS\n");
                while (test_ioctl(fd, VIDIOC_ENUM_DV_TIMINGS, &dv_enum_timings) 
>= 0) {
                        if (options[OptConcise]) {

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to