From 254984b6006029f5f7b90e3d93586db01f2a4229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Sun, 1 Mar 2026 21:36:21 +0900 Subject: [PATCH] mcp: use dynamic allocation for error messages in tools --- src/mcp/tools.zig | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/mcp/tools.zig b/src/mcp/tools.zig index 17e79f86..eba5003a 100644 --- a/src/mcp/tools.zig +++ b/src/mcp/tools.zig @@ -210,14 +210,12 @@ fn handleOver(server: *Server, arena: std.mem.Allocator, id: std.json.Value, arg fn parseParams(comptime T: type, arena: std.mem.Allocator, arguments: ?std.json.Value, server: *Server, id: std.json.Value, tool_name: []const u8) !T { if (arguments == null) { - var buf: [64]u8 = undefined; - const msg = std.fmt.bufPrint(&buf, "Missing arguments for {s}", .{tool_name}) catch "Missing arguments"; + const msg = std.fmt.allocPrint(arena, "Missing arguments for {s}", .{tool_name}) catch "Missing arguments"; try server.sendError(id, .InvalidParams, msg); return error.InvalidParams; } return std.json.parseFromValueLeaky(T, arena, arguments.?, .{ .ignore_unknown_fields = true }) catch { - var buf: [64]u8 = undefined; - const msg = std.fmt.bufPrint(&buf, "Invalid arguments for {s}", .{tool_name}) catch "Invalid arguments"; + const msg = std.fmt.allocPrint(arena, "Invalid arguments for {s}", .{tool_name}) catch "Invalid arguments"; try server.sendError(id, .InvalidParams, msg); return error.InvalidParams; };