sg_write()/bsg_write() is not fit to be called under KERNEL_DS
[pandora-kernel.git] / drivers / scsi / sg.c
index 94b71b4..fb59a49 100644 (file)
@@ -544,6 +544,9 @@ sg_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos)
        sg_io_hdr_t *hp;
        unsigned char cmnd[MAX_COMMAND_SIZE];
 
+       if (unlikely(segment_eq(get_fs(), KERNEL_DS)))
+               return -EINVAL;
+
        if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp)))
                return -ENXIO;
        SCSI_LOG_TIMEOUT(3, printk("sg_write: %s, count=%d\n",