File: syscall.patch

package info (click to toggle)
kpatch 0.9.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,716 kB
  • sloc: ansic: 9,716; sh: 2,592; makefile: 260; asm: 35
file content (25 lines) | stat: -rw-r--r-- 808 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
diff -Nupr src.orig/kernel/sys.c src/kernel/sys.c
--- src.orig/kernel/sys.c	2022-04-29 16:10:59.577343400 -0400
+++ src/kernel/sys.c	2022-04-29 16:10:59.917344609 -0400
@@ -1241,14 +1241,18 @@ static int override_release(char __user
 	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;