I want to get directories from PATH var

   fn get_path_env(allocator: Allocator) ![]const u8 {
        var os_env = std.process.getEnvMap(allocator) catch {
            return error.CommandError;
        };
        defer os_env.deinit();
        const path_env = os_env.get("PATH") orelse {
            return error.CommandError;
        };
        return path_env;
    }

    fn get_list_of_commands_from_path(allocator: Allocator) !void {
        const path_env: []const u8 = get_path_env(allocator) catch {
            return error.CommandError;
        };
        try std.io.getStdOut().writer().print("PATH={s}\n", .{path_env});
    }

Getting this segmentation fault:

PATH=thread 38014 panic: reached unreachable code
/usr/lib/zig/std/posix.zig:1223:23: 0x106f9fe in write (main)
            .FAULT => unreachable,
                      ^
/usr/lib/zig/std/fs/File.zig:1281:23: 0x103d60a in write (main)
    return posix.write(self.handle, bytes);
                      ^
/usr/lib/zig/std/io.zig:360:27: 0x103770a in typeErasedWriteFn (main)
            return writeFn(ptr.*, bytes);
                          ^
/usr/lib/zig/std/io/Writer.zig:13:24: 0x103d75b in write (main)
    return self.writeFn(self.context, bytes);
                       ^
/usr/lib/zig/std/io/Writer.zig:19:32: 0x1037953 in writeAll (main)
        index += try self.write(bytes[index..])

what mistake I’m making?

 return try allocator.dupe(u8, path_env);

fixed.
the problem was lifetime of os_env