This has already been fixed in Linus' tree. Here's hoping it gets into
2.4 sometime soon. Note in the patch that "node" is the userspace
pointer and "nodename" is the string where "node" was
strncpy_from_user()'d to.
So it really should be using "nodename".
Index: linux-2.4/arch/mips64/kernel/syscall.c
===================================================================
--- linux-2.4/arch/mips64/kernel/syscall.c (revision 3226)
+++ linux-2.4/arch/mips64/kernel/syscall.c (working copy)
@@ -207,7 +207,7 @@
return -EFAULT;
down_write(&uts_sem);
- strncpy(system_utsname.nodename, name, len);
+ strncpy(system_utsname.nodename, nodename, len);
system_utsname.nodename[len] = '\0';
up_write(&uts_sem);
return 0;
Index: linux-2.4/arch/mips/kernel/sysmips.c
===================================================================
--- linux-2.4/arch/mips/kernel/sysmips.c (revision 3226)
+++ linux-2.4/arch/mips/kernel/sysmips.c (working copy)
@@ -65,7 +65,7 @@
return -EFAULT;
down_write(&uts_sem);
- strncpy(system_utsname.nodename, name, len);
+ strncpy(system_utsname.nodename, nodename, len);
system_utsname.nodename[len] = '\0';
up_write(&uts_sem);
return 0;
|