From: Julian Seward Date: Fri, 22 May 2015 10:40:42 +0000 (+0000) Subject: Fix bug 345126: Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT X-Git-Tag: svn/VALGRIND_3_11_0~354 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9dc5a73468394bde1eecc914f8fb36fa5a7fe814;p=thirdparty%2Fvalgrind.git 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 --- diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 09c247cdbd..935d190a20 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: {