mirror of
https://github.com/dynup/kpatch
synced 2025-04-17 04:25:57 +00:00
Add ".kpatch" to the end of "uname -s". Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
27 lines
782 B
Diff
27 lines
782 B
Diff
diff --git a/kernel/sys.c b/kernel/sys.c
|
|
index 1fbf388279832..b5186aa83adfa 100644
|
|
--- a/kernel/sys.c
|
|
+++ b/kernel/sys.c
|
|
@@ -1392,14 +1392,18 @@ static int override_release(char __user *release, size_t len)
|
|
return ret;
|
|
}
|
|
|
|
-SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
|
|
+#include "kpatch-syscall.h"
|
|
+KPATCH_SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
|
|
{
|
|
+ struct new_utsname tmp;
|
|
int errno = 0;
|
|
|
|
down_read(&uts_sem);
|
|
- if (copy_to_user(name, utsname(), sizeof *name))
|
|
- errno = -EFAULT;
|
|
+ memcpy(&tmp, utsname(), sizeof(tmp));
|
|
up_read(&uts_sem);
|
|
+ strcat(tmp.sysname, ".kpatch");
|
|
+ if (copy_to_user(name, &tmp, sizeof(tmp)))
|
|
+ errno = -EFAULT;
|
|
|
|
if (!errno && override_release(name->release, sizeof(name->release)))
|
|
errno = -EFAULT;
|