Compare commits

...

2 commits

Author SHA1 Message Date
AnErrupTion
a22805d44b
Auth: Handle symlinks for session log
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-31 23:52:19 +02:00
AnErrupTion
b6fba46b08
GPA: Add more tracking in Debug
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-28 01:38:48 +02:00
2 changed files with 14 additions and 3 deletions

View file

@ -574,7 +574,15 @@ fn executeCmd(global_log_file: *LogFile, allocator: std.mem.Allocator, io: std.I
fn redirectStandardStreams(global_log_file: *LogFile, io: std.Io, session_log: []const u8, create: bool) !std.Io.File {
create_session_log_dir: {
const session_log_dir = std.Io.Dir.path.dirname(session_log) orelse break :create_session_log_dir;
std.Io.Dir.cwd().createDirPath(io, session_log_dir) catch |err| {
var buffer = std.mem.zeroes([std.Io.Dir.max_path_bytes]u8);
const len = std.Io.Dir.cwd().realPathFile(io, session_log_dir, &buffer) catch |err| {
try global_log_file.err(io, "auth/sys", "failed to resolve path for session log file directory: {s}", .{@errorName(err)});
return err;
};
const resolved_path = buffer[0..len];
std.Io.Dir.cwd().createDirPath(io, resolved_path) catch |err| {
try global_log_file.err(io, "auth/sys", "failed to create session log file directory: {s}", .{@errorName(err)});
return err;
};

View file

@ -149,8 +149,11 @@ pub fn main(init: std.process.Init) !void {
}
}
var gpa = std.heap.DebugAllocator(.{}).init;
defer _ = gpa.deinit();
var gpa: std.heap.DebugAllocator(.{
.never_unmap = builtin.mode == .Debug,
.retain_metadata = builtin.mode == .Debug,
}) = .init;
defer if (gpa.deinit() == .leak) std.log.err("attention please, memory has been leaked!", .{});
state.allocator = gpa.allocator();