diff options
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/Process.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index c81e9598ed..1ee32709f8 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -715,9 +715,11 @@ int Process::sys$gethostname(char* buffer, ssize_t size) int Process::sys$sethostname(const char* hostname, ssize_t length) { REQUIRE_PROMISE(stdio); + if (!is_superuser()) + return -EPERM; if (length < 0) return -EINVAL; - LOCKER(*s_hostname_lock, Lock::Mode::Shared); + LOCKER(*s_hostname_lock, Lock::Mode::Exclusive); if (length > 64) return -ENAMETOOLONG; *s_hostname = validate_and_copy_string_from_user(hostname, length); |