aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2015-05-22 10:40:42 +0000
committersewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2015-05-22 10:40:42 +0000
commit0b8252d442962a8957a5a7f1703c3f967a4c0b7f (patch)
treebaee6cc7c220f219e70db9fc85c056b27d08e9ae
parent9e0419ccc35cf850f2b209abdebaa39a9fd20509 (diff)
downloadvalgrind-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.c18
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: {