From 558724a2f8ed824f39448ede5ed6504fd096b7d5 Mon Sep 17 00:00:00 2001 From: Michael Albaugh Date: Wed, 16 Apr 2008 21:09:28 -0700 Subject: [PATCH] --- yaml --- r: 88520 b: refs/heads/master c: afd9970f957454782795b23c89fd6d7dde973cc0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/hw/ipath/ipath_diag.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 490411919014..669b25a97435 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7ce5eacb45a7c819a6bec6ed486f27db9aab6ab6 +refs/heads/master: afd9970f957454782795b23c89fd6d7dde973cc0 diff --git a/trunk/drivers/infiniband/hw/ipath/ipath_diag.c b/trunk/drivers/infiniband/hw/ipath/ipath_diag.c index af59bf380ca2..c9bfd827e71b 100644 --- a/trunk/drivers/infiniband/hw/ipath/ipath_diag.c +++ b/trunk/drivers/infiniband/hw/ipath/ipath_diag.c @@ -332,12 +332,17 @@ static ssize_t ipath_diagpkt_write(struct file *fp, u64 val; u32 l_state, lt_state; /* LinkState, LinkTrainingState */ - if (count != sizeof(dp)) { + if (count < sizeof(odp)) { ret = -EINVAL; goto bail; } - if (copy_from_user(&dp, data, sizeof(dp))) { + if (count == sizeof(dp)) { + if (copy_from_user(&dp, data, sizeof(dp))) { + ret = -EFAULT; + goto bail; + } + } else if (copy_from_user(&odp, data, sizeof(odp))) { ret = -EFAULT; goto bail; }