]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix bug 345126: Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT
authorJulian Seward <jseward@acm.org>
Fri, 22 May 2015 10:40:42 +0000 (10:40 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 22 May 2015 10:40:42 +0000 (10:40 +0000)
Patch from Hans Verkuil (hverkuil@xs4all.nl)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15276

coregrind/m_syswrap/syswrap-linux.c

index 09c247cdbd26c01a6d3a3926322a0fbd9d6d3c97..935d190a200a764d066261103c79d7e7b25dcf2c 100644 (file)
@@ -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: {