From 0b8252d442962a8957a5a7f1703c3f967a4c0b7f Mon Sep 17 00:00:00 2001 From: sewardj Date: Fri, 22 May 2015 10:40:42 +0000 Subject: Fix bug 345126: Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT Patch from Hans Verkuil (hverkuil@xs4all.nl) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15276 a5019735-40e9-0310-863c-91ae7b9d1cf9 --- coregrind/m_syswrap/syswrap-linux.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 09c247cdb..935d190a2 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -7738,9 +7738,8 @@ PRE(sys_ioctl) } case VKI_V4L2_G_AUDIO: { struct vki_v4l2_audio *data = (struct vki_v4l2_audio *)ARG3; - PRE_FIELD_READ("ioctl(VKI_V4L2_G_AUDIO).index", data->index); - PRE_MEM_WRITE("ioctl(VKI_V4L2_G_AUDIO)", (Addr)data->name, - sizeof(*data) - sizeof(data->index) - sizeof(data->reserved)); + PRE_MEM_WRITE("ioctl(VKI_V4L2_G_AUDIO)", (Addr)data, + sizeof(*data) - sizeof(data->reserved)); PRE_FIELD_READ("ioctl(VKI_V4L2_G_AUDIO).reserved", data->reserved); break; } @@ -7808,10 +7807,9 @@ PRE(sys_ioctl) } case VKI_V4L2_G_AUDOUT: { struct vki_v4l2_audioout *data = (struct vki_v4l2_audioout *)ARG3; - PRE_FIELD_READ("ioctl(VKI_V4L2_G_AUDOUT).index", data->index); + PRE_MEM_WRITE("ioctl(VKI_V4L2_G_AUDOUT)", (Addr)data, + sizeof(*data) - sizeof(data->reserved)); PRE_FIELD_READ("ioctl(VKI_V4L2_G_AUDOUT).reserved", data->reserved); - PRE_MEM_WRITE("ioctl(VKI_V4L2_G_AUDOUT)", (Addr)data->name, - sizeof(*data) - sizeof(data->index) - sizeof(data->reserved)); break; } case VKI_V4L2_S_AUDOUT: { @@ -9882,8 +9880,8 @@ POST(sys_ioctl) } case VKI_V4L2_G_AUDIO: { struct vki_v4l2_audio *data = (struct vki_v4l2_audio *)ARG3; - POST_MEM_WRITE((Addr)data->name, - sizeof(*data) - sizeof(data->index) - sizeof(data->reserved)); + POST_MEM_WRITE((Addr)data, + sizeof(*data) - sizeof(data->reserved)); break; } case VKI_V4L2_QUERYCTRL: { @@ -9921,8 +9919,8 @@ POST(sys_ioctl) } case VKI_V4L2_G_AUDOUT: { struct vki_v4l2_audioout *data = (struct vki_v4l2_audioout *)ARG3; - POST_MEM_WRITE((Addr)data->name, - sizeof(*data) - sizeof(data->index) - sizeof(data->reserved)); + POST_MEM_WRITE((Addr)data, + sizeof(*data) - sizeof(data->reserved)); break; } case VKI_V4L2_G_MODULATOR: { -- cgit v1.2.3