╭ changed ────╮ │src/event.zig│ ╰─────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭─────────────────────────────────────────────────────────────────────────╮ │2309 if (user.removed) return error.NotFound; │ │2310 │ │2311 var keys: std.ArrayList(u8) = .empty; │ │2312 + var count: usize = 0; │ │2313 var held = false; │ │2314 var lines = std.mem.splitScalar(u8, user.event.ssh_keys, '\n');│ │2315 while (lines.next()) |line| { │ ╰─────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │2320 } │ │2321 if (keys.items.len > 0) try keys.append(arena.allocator(), '\n');│ │2322 try keys.appendSlice(arena.allocator(), line); │ │2323 + count += 1; │ │2324 } │ │2325 if (added) |key| { │ │2326 if (held) return error.KeyAdded; │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │2327 + if (count >= User.ssh_key_max_count) return error.TooManyKeys; │ │2328 if (keys.items.len > 0) try keys.append(arena.allocator(), '\n');│ │2329 try keys.appendSlice(arena.allocator(), key); │ │2330 } else if (!held) return; │ ╰───────────────────────────────────────────────────────────────────────────────╯