diff --git a/src/gui/windows/invite.zig b/src/gui/windows/invite.zig index b9e6b1a47b..9683710879 100644 --- a/src/gui/windows/invite.zig +++ b/src/gui/windows/invite.zig @@ -42,11 +42,13 @@ fn discoverIpAddressFromNewThread() void { } fn invite() void { + const storeIpAddressEntry = main.stackAllocator.dupe(u8, ipAddressEntry.currentString.items); + ipAddressEntry.clear(); if (thread) |_thread| { _thread.join(); thread = null; } - _ = main.server.User.init(main.server.connectionManager, ipAddressEntry.currentString.items) catch |err| { + _ = main.server.User.init(main.server.connectionManager, storeIpAddressEntry) catch |err| { if (err != error.AlreadyConnected) { std.log.err("Cannot connect user: {s}", .{@errorName(err)}); } diff --git a/src/network.zig b/src/network.zig index bad585aeb6..4b1517fa49 100644 --- a/src/network.zig +++ b/src/network.zig @@ -1528,6 +1528,7 @@ pub const Connection = struct { // MARK: Connection pub fn init(manager: *ConnectionManager, ipPort: []const u8, user: ?*main.server.User) !*Connection { const result: *Connection = main.globalAllocator.create(Connection); errdefer main.globalAllocator.destroy(result); + defer main.stackAllocator.free(ipPort); result.* = Connection{ .manager = manager, .user = user,