瀏覽代碼

LibCore: Allow the setgroups wrapper to be used on Lagom

i.e. move Core::System::setgroups() outside the `__serenity__` define.
The base function is already used by LibCore::Account.
Lucas CHOLLET 3 年之前
父節點
當前提交
08dcc40aa5
共有 2 個文件被更改,包括 8 次插入8 次删除
  1. 7 7
      Userland/Libraries/LibCore/System.cpp
  2. 1 1
      Userland/Libraries/LibCore/System.h

+ 7 - 7
Userland/Libraries/LibCore/System.cpp

@@ -122,13 +122,6 @@ ErrorOr<void> ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destinati
     HANDLE_SYSCALL_RETURN_VALUE("ptrace_peekbuf", rc, {});
     HANDLE_SYSCALL_RETURN_VALUE("ptrace_peekbuf", rc, {});
 }
 }
 
 
-ErrorOr<void> setgroups(Span<gid_t const> gids)
-{
-    if (::setgroups(gids.size(), gids.data()) < 0)
-        return Error::from_syscall("setgroups"sv, -errno);
-    return {};
-}
-
 ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags)
 ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags)
 {
 {
     if (target.is_null() || fs_type.is_null())
     if (target.is_null() || fs_type.is_null())
@@ -1217,6 +1210,13 @@ ErrorOr<Vector<gid_t>> getgroups()
     return groups;
     return groups;
 }
 }
 
 
+ErrorOr<void> setgroups(Span<gid_t const> gids)
+{
+    if (::setgroups(gids.size(), gids.data()) < 0)
+        return Error::from_syscall("setgroups"sv, -errno);
+    return {};
+}
+
 ErrorOr<void> mknod(StringView pathname, mode_t mode, dev_t dev)
 ErrorOr<void> mknod(StringView pathname, mode_t mode, dev_t dev)
 {
 {
     if (pathname.is_null())
     if (pathname.is_null())

+ 1 - 1
Userland/Libraries/LibCore/System.h

@@ -39,7 +39,6 @@ ErrorOr<void> unveil(StringView path, StringView permissions);
 ErrorOr<void> sendfd(int sockfd, int fd);
 ErrorOr<void> sendfd(int sockfd, int fd);
 ErrorOr<int> recvfd(int sockfd, int options);
 ErrorOr<int> recvfd(int sockfd, int options);
 ErrorOr<void> ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destination_buf);
 ErrorOr<void> ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destination_buf);
-ErrorOr<void> setgroups(Span<gid_t const>);
 ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags);
 ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags);
 ErrorOr<void> umount(StringView mount_point);
 ErrorOr<void> umount(StringView mount_point);
 ErrorOr<long> ptrace(int request, pid_t tid, void* address, void* data);
 ErrorOr<long> ptrace(int request, pid_t tid, void* address, void* data);
@@ -185,6 +184,7 @@ ErrorOr<void> getsockname(int sockfd, struct sockaddr*, socklen_t*);
 ErrorOr<void> getpeername(int sockfd, struct sockaddr*, socklen_t*);
 ErrorOr<void> getpeername(int sockfd, struct sockaddr*, socklen_t*);
 ErrorOr<void> socketpair(int domain, int type, int protocol, int sv[2]);
 ErrorOr<void> socketpair(int domain, int type, int protocol, int sv[2]);
 ErrorOr<Vector<gid_t>> getgroups();
 ErrorOr<Vector<gid_t>> getgroups();
+ErrorOr<void> setgroups(Span<gid_t const>);
 ErrorOr<void> mknod(StringView pathname, mode_t mode, dev_t dev);
 ErrorOr<void> mknod(StringView pathname, mode_t mode, dev_t dev);
 ErrorOr<void> mkfifo(StringView pathname, mode_t mode);
 ErrorOr<void> mkfifo(StringView pathname, mode_t mode);
 ErrorOr<void> setenv(StringView, StringView, bool);
 ErrorOr<void> setenv(StringView, StringView, bool);