diff options
author | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2015-05-22 10:40:42 +0000 |
---|---|---|
committer | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2015-05-22 10:40:42 +0000 |
commit | 0b8252d442962a8957a5a7f1703c3f967a4c0b7f (patch) | |
tree | baee6cc7c220f219e70db9fc85c056b27d08e9ae | |
parent | 9e0419ccc35cf850f2b209abdebaa39a9fd20509 (diff) | |
download | valgrind-0b8252d442962a8957a5a7f1703c3f967a4c0b7f.tar.gz |
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
-rw-r--r-- | coregrind/m_syswrap/syswrap-linux.c | 18 |
1 files 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: { |