1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-03 11:48:42 +00:00

LibTimeZone: Replace PATH_MAX usage with heap allocation

This commit is contained in:
Sergey Bugaev 2023-09-03 17:57:37 +03:00 committed by Andrew Kaster
parent ae10d085ba
commit de6664c0cb

View File

@ -6,6 +6,7 @@
#include <AK/Debug.h>
#include <AK/DeprecatedString.h>
#include <AK/ScopeGuard.h>
#include <LibTimeZone/TimeZone.h>
#include <limits.h>
#include <stdio.h>
@ -106,10 +107,11 @@ StringView current_time_zone()
return system_time_zone();
#else
static constexpr auto zoneinfo = "/zoneinfo/"sv;
char buffer[PATH_MAX];
char* real_path = realpath("/etc/localtime", nullptr);
ScopeGuard free_path = [real_path]() { free(real_path); };
if (realpath("/etc/localtime", buffer)) {
auto time_zone = StringView { buffer, strlen(buffer) };
if (real_path) {
auto time_zone = StringView { real_path, strlen(real_path) };
if (auto index = time_zone.find(zoneinfo); index.has_value())
time_zone = time_zone.substring_view(*index + zoneinfo.length());