All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bradley Morgan <bradley.morgan@linux.dev>
To: lauserve@gmail.com
Cc: akpm@linux-foundation.org, brauner@kernel.org, jannh@google.com,
	laurijssen@protonmail.com, linux-kernel@vger.kernel.org,
	pjw@kernel.org
Subject: Re: [PATCH] add utsname_set_field to reuse code in setdomainname and sethostname
Date: Wed, 11 Nov 2026 20:17:20 +0000	[thread overview]
Message-ID: <B9DD7F6A-A760-41D8-8809-D12F3F178326@linux.dev> (raw)
In-Reply-To: <20261111073317.93929-1-laurijssen@protonmail.com>

On 11 November 2026 07:33:17 GMT, Laurijssen <lauserve@gmail.com> wrote:
>Changes after review, cleanup of duplicated code in sethostname and
>setdomainname.
>
>- add static utsname_set_field sys.c
>- call utsname_set_field from sethostname/setdomainname
>- code compiles now when CONFIG_SYSCTL is not defined

This changelog seriously isn't great, like this description is absolutely
unmergable. Please read docs.

NAK.

>
>Signed-off-by: Laurijssen <laurijssen@protonmail.com>
>---
> kernel/sys.c | 53 ++++++++++++++++++++++++++--------------------------
> 1 file changed, 27 insertions(+), 26 deletions(-)
>
>diff --git a/kernel/sys.c b/kernel/sys.c
>index 755bfa5ccd92..77fedd127a3f 100644
>--- a/kernel/sys.c
>+++ b/kernel/sys.c
>@@ -1419,7 +1419,7 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
> }
> #endif
> 
>-SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
>+static int utsname_set_field(char __user *name, int len, enum uts_proc proc)
> {
> 	int errno;
> 	char tmp[__NEW_UTS_LEN];
>@@ -1432,19 +1432,41 @@ SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
> 	errno = -EFAULT;
> 	if (!copy_from_user(tmp, name, len)) {
> 		struct new_utsname *u;
>+		char *field;
> 
> 		add_device_randomness(tmp, len);
> 		down_write(&uts_sem);
>+
> 		u = utsname();
>-		memcpy(u->nodename, tmp, len);
>-		memset(u->nodename + len, 0, sizeof(u->nodename) - len);
>+
>+		switch (proc) {
>+		case UTS_PROC_HOSTNAME:
>+			field = u->nodename;
>+			break;
>+		case UTS_PROC_DOMAINNAME:
>+			field = u->domainname;
>+			break;
>+		default:
>+			WARN_ON_ONCE(1);
>+			field = u->domainname;
>+			break;
>+		}
>+
>+		memcpy(field, tmp, len);
>+		memset(field + len, 0, sizeof_field(struct new_utsname, nodename) - len);
>+
> 		errno = 0;
>-		uts_proc_notify(UTS_PROC_HOSTNAME);
>+		uts_proc_notify(proc);
> 		up_write(&uts_sem);
> 	}
> 	return errno;
> }
> 
>+SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
>+{
>+	return utsname_set_field(name, len, UTS_PROC_HOSTNAME);
>+}
>+
> #ifdef __ARCH_WANT_SYS_GETHOSTNAME
> 
> SYSCALL_DEFINE2(gethostname, char __user *, name, int, len)
>@@ -1475,28 +1497,7 @@ SYSCALL_DEFINE2(gethostname, char __user *, name, int, len)
>  */
> SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
> {
>-	int errno;
>-	char tmp[__NEW_UTS_LEN];
>-
>-	if (!ns_capable(current->nsproxy->uts_ns->user_ns, CAP_SYS_ADMIN))
>-		return -EPERM;
>-	if (len < 0 || len > __NEW_UTS_LEN)
>-		return -EINVAL;
>-
>-	errno = -EFAULT;
>-	if (!copy_from_user(tmp, name, len)) {
>-		struct new_utsname *u;
>-
>-		add_device_randomness(tmp, len);
>-		down_write(&uts_sem);
>-		u = utsname();
>-		memcpy(u->domainname, tmp, len);
>-		memset(u->domainname + len, 0, sizeof(u->domainname) - len);
>-		errno = 0;
>-		uts_proc_notify(UTS_PROC_DOMAINNAME);
>-		up_write(&uts_sem);
>-	}
>-	return errno;
>+	return utsname_set_field(name, len, UTS_PROC_DOMAINNAME);
> }
> 
> /* make sure you are allowed to change @tsk limits before calling this */
>

--- Thanks!

  reply	other threads:[~2026-11-11 20:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-01  7:12 [PATCH] add setutsname to reuse code in setdomainname and sethostname Laurijssen
2026-11-01 15:38 ` Bradley Morgan
2026-11-09 11:44   ` [PATCH] SYS: add utsname_set_field " Laurijssen
2026-11-09 20:30     ` kernel test robot
2026-11-09 21:11     ` Bradley Morgan
2026-11-11  6:20       ` Laurijssen
2026-11-09 21:13     ` kernel test robot
2026-11-11  7:33     ` [PATCH] " Laurijssen
2026-11-11 20:17       ` Bradley Morgan [this message]
2026-11-12  8:11         ` [PATCH] SYS: refactor sethostname setdomainname by introducing shared helper Laurijssen
  -- strict thread matches above, loose matches on Subject: below --
2026-11-05 12:07 [PATCH] add utsname_set_field to reuse code in setdomainname and sethostname Laurijssen
2026-11-06 15:56 ` kernel test robot
2026-11-06 16:31 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B9DD7F6A-A760-41D8-8809-D12F3F178326@linux.dev \
    --to=bradley.morgan@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=jannh@google.com \
    --cc=laurijssen@protonmail.com \
    --cc=lauserve@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pjw@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.