summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/sys.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index d5b79f65ad9b..558b035965aa 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1350,7 +1350,8 @@ asmlinkage long sys_sethostname(char __user *name, int len)
errno = -EFAULT;
if (!copy_from_user(tmp, name, len)) {
memcpy(utsname()->nodename, tmp, len);
- utsname()->nodename[len] = 0;
+ memset(utsname()->nodename + len, 0,
+ sizeof(utsname()->nodename) - len);
errno = 0;
}
up_write(&uts_sem);
@@ -1396,7 +1397,8 @@ asmlinkage long sys_setdomainname(char __user *name, int len)
errno = -EFAULT;
if (!copy_from_user(tmp, name, len)) {
memcpy(utsname()->domainname, tmp, len);
- utsname()->domainname[len] = 0;
+ memset(utsname()->domainname + len, 0,
+ sizeof(utsname()->domainname) - len);
errno = 0;
}
up_write(&uts_sem);