[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] linux: xenbus dev write function resets packet data on *all* error conditions.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1172852988 0 # Node ID 4d447158e1dd2fb6de9d817eb3c83b7ef4755932 # Parent 36b923615369583d75bd3afb8d9bcbb27b222cb6 linux: xenbus dev write function resets packet data on *all* error conditions. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) diff -r 36b923615369 -r 4d447158e1dd linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c Fri Mar 02 16:26:56 2007 +0000 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c Fri Mar 02 16:29:48 2007 +0000 @@ -175,11 +175,15 @@ static ssize_t xenbus_dev_write(struct f struct watch_adapter *watch, *tmp_watch; int err, rc = len; - if ((len + u->len) > sizeof(u->u.buffer)) - return -EINVAL; - - if (copy_from_user(u->u.buffer + u->len, ubuf, len) != 0) - return -EFAULT; + if ((len + u->len) > sizeof(u->u.buffer)) { + rc = -EINVAL; + goto out; + } + + if (copy_from_user(u->u.buffer + u->len, ubuf, len) != 0) { + rc = -EFAULT; + goto out; + } u->len += len; if ((u->len < sizeof(u->u.msg)) || _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |