Fix for bug 2673 from Egbert Eich - memset the version
authorDave Airlie <airlied@linux.ie>
Tue, 8 Mar 2005 23:47:11 +0000 (23:47 +0000)
committerDave Airlie <airlied@linux.ie>
Tue, 8 Mar 2005 23:47:11 +0000 (23:47 +0000)
linux-core/drm_ioctl.c

index b8ed5a7..24f6579 100644 (file)
@@ -328,6 +328,14 @@ int drm_setversion(DRM_IOCTL_ARGS)
  
        DRM_COPY_FROM_USER_IOCTL(sv, argp, sizeof(sv));
 
+       /*
+        * version.name etc need to be initialized to zero.
+        * If we don't, driver->version() will poke random strings to
+        * random locations in user space, causing X server segfaults
+        * that are interesting to debug.   --eich
+        */
+       memset(&version, 0, sizeof(version));
+
        dev->driver->version(&version);
        retv.drm_di_major = DRM_IF_MAJOR;
        retv.drm_di_minor = DRM_IF_MINOR;