From 74f0aec478616084122324d1d00914afe4a7346a Mon Sep 17 00:00:00 2001 From: Susumu Komae Date: Thu, 8 Jan 2015 12:38:06 +0900 Subject: [PATCH] skip copy_to_user() when r->ret is negative error number in mckernel_procfs_read(). refs #370 --- executer/kernel/procfs.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/executer/kernel/procfs.c b/executer/kernel/procfs.c index bdaf3fd0..50c9e0fc 100644 --- a/executer/kernel/procfs.c +++ b/executer/kernel/procfs.c @@ -380,13 +380,15 @@ retry: goto retry; } - if (copy_to_user(buf, kern_buffer, r->ret)) { - kprintf("ERROR: mckernel_procfs_read: copy_to_user failed.\n"); - ret = -EFAULT; - goto out; - } + if (r->ret > 0) { + if (copy_to_user(buf, kern_buffer, r->ret)) { + kprintf("ERROR: mckernel_procfs_read: copy_to_user failed.\n"); + ret = -EFAULT; + goto out; + } - *ppos += r->ret; + *ppos += r->ret; + } ret = r->ret; out: