From 3f99a8734e0177427a71615a89c1ad1ad12995aa Mon Sep 17 00:00:00 2001 From: Arda Cinar Date: Tue, 10 Jan 2023 17:30:04 +0300 Subject: [PATCH] LibCore: Call the mkstemp function in a slightly prettier way This removes a FIXME, although the new version isn't less char-pointery. --- Userland/Libraries/LibCore/Account.cpp | 18 ++++++++---------- Userland/Libraries/LibCore/Group.cpp | 8 ++++---- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Userland/Libraries/LibCore/Account.cpp b/Userland/Libraries/LibCore/Account.cpp index 68de38c562..7f2aaf6324 100644 --- a/Userland/Libraries/LibCore/Account.cpp +++ b/Userland/Libraries/LibCore/Account.cpp @@ -295,22 +295,18 @@ ErrorOr Account::sync() auto new_shadow_file_content = TRY(generate_shadow_file()); #endif - // FIXME: mkstemp taking Span makes this code entirely un-AKable. - // Make this code less char-pointery. - char new_passwd_name[] = "/etc/passwd.XXXXXX"; - size_t new_passwd_name_length = strlen(new_passwd_name); + char new_passwd_file[] = "/etc/passwd.XXXXXX"; #ifndef AK_OS_BSD_GENERIC - char new_shadow_name[] = "/etc/shadow.XXXXXX"; - size_t new_shadow_name_length = strlen(new_shadow_name); + char new_shadow_file[] = "/etc/shadow.XXXXXX"; #endif { - auto new_passwd_fd = TRY(Core::System::mkstemp({ new_passwd_name, new_passwd_name_length })); + auto new_passwd_fd = TRY(Core::System::mkstemp(new_passwd_file)); ScopeGuard new_passwd_fd_guard = [new_passwd_fd] { close(new_passwd_fd); }; TRY(Core::System::fchmod(new_passwd_fd, 0644)); #ifndef AK_OS_BSD_GENERIC - auto new_shadow_fd = TRY(Core::System::mkstemp({ new_shadow_name, new_shadow_name_length })); + auto new_shadow_fd = TRY(Core::System::mkstemp(new_shadow_file)); ScopeGuard new_shadow_fd_guard = [new_shadow_fd] { close(new_shadow_fd); }; TRY(Core::System::fchmod(new_shadow_fd, 0600)); #endif @@ -324,9 +320,11 @@ ErrorOr Account::sync() #endif } - TRY(Core::System::rename({ new_passwd_name, new_passwd_name_length }, "/etc/passwd"sv)); + auto new_passwd_file_view = StringView { new_passwd_file, sizeof(new_passwd_file) }; + TRY(Core::System::rename(new_passwd_file_view, "/etc/passwd"sv)); #ifndef AK_OS_BSD_GENERIC - TRY(Core::System::rename({ new_shadow_name, new_shadow_name_length }, "/etc/shadow"sv)); + auto new_shadow_file_view = StringView { new_shadow_file, sizeof(new_shadow_file) }; + TRY(Core::System::rename(new_shadow_file_view, "/etc/shadow"sv)); #endif return {}; diff --git a/Userland/Libraries/LibCore/Group.cpp b/Userland/Libraries/LibCore/Group.cpp index 66df15e2d6..0f07a0b5ee 100644 --- a/Userland/Libraries/LibCore/Group.cpp +++ b/Userland/Libraries/LibCore/Group.cpp @@ -51,11 +51,11 @@ ErrorOr Group::sync() auto new_group_file_content = TRY(generate_group_file()); - char new_group_name[] = "/etc/group.XXXXXX"; - size_t new_group_name_length = strlen(new_group_name); + char new_group_file[] = "/etc/group.XXXXXX"; + auto new_group_file_view = StringView { new_group_file, sizeof(new_group_file) }; { - auto new_group_fd = TRY(Core::System::mkstemp({ new_group_name, new_group_name_length })); + auto new_group_fd = TRY(Core::System::mkstemp(new_group_file)); ScopeGuard new_group_fd_guard([new_group_fd] { close(new_group_fd); }); TRY(Core::System::fchmod(new_group_fd, 0664)); @@ -63,7 +63,7 @@ ErrorOr Group::sync() VERIFY(static_cast(nwritten) == new_group_file_content.length()); } - TRY(Core::System::rename({ new_group_name, new_group_name_length }, "/etc/group"sv)); + TRY(Core::System::rename(new_group_file_view, "/etc/group"sv)); return {}; }