scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly
[linux-2.6-microblaze.git] / drivers / scsi / qedf / qedf_debugfs.c
index a3ed681..3eb4334 100644 (file)
@@ -185,18 +185,17 @@ qedf_dbg_stop_io_on_error_cmd_read(struct file *filp, char __user *buffer,
                                   size_t count, loff_t *ppos)
 {
        int cnt;
+       char cbuf[7];
        struct qedf_dbg_ctx *qedf_dbg =
                                (struct qedf_dbg_ctx *)filp->private_data;
        struct qedf_ctx *qedf = container_of(qedf_dbg,
            struct qedf_ctx, dbg_ctx);
 
        QEDF_INFO(qedf_dbg, QEDF_LOG_DEBUGFS, "entered\n");
-       cnt = sprintf(buffer, "%s\n",
+       cnt = scnprintf(cbuf, sizeof(cbuf), "%s\n",
            qedf->stop_io_on_error ? "true" : "false");
 
-       cnt = min_t(int, count, cnt - *ppos);
-       *ppos += cnt;
-       return cnt;
+       return simple_read_from_buffer(buffer, count, ppos, cbuf, cnt);
 }
 
 static ssize_t