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
