Replace catch bun.outOfMemory() with safer alternatives (#22141)

Replace `catch bun.outOfMemory()`, which can accidentally catch
non-OOM-related errors, with either `bun.handleOom` or a manual `catch
|err| switch (err)`.

(For internal tracking: fixes STAB-1070)

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
This commit is contained in:
taylor.fish
2025-08-26 12:50:25 -07:00
committed by GitHub
parent 300f486125
commit 437e15bae5
284 changed files with 1835 additions and 1662 deletions

View File

@@ -88,13 +88,13 @@ pub const OutdatedCommand = struct {
original_cwd,
manager,
filters,
) catch bun.outOfMemory();
) catch |err| bun.handleOom(err);
defer bun.default_allocator.free(workspace_pkg_ids);
try updateManifestsIfNecessary(manager, workspace_pkg_ids);
try printOutdatedInfoTable(manager, workspace_pkg_ids, true, enable_ansi_colors);
} else if (manager.options.do.recursive) {
const all_workspaces = getAllWorkspaces(bun.default_allocator, manager) catch bun.outOfMemory();
const all_workspaces = bun.handleOom(getAllWorkspaces(bun.default_allocator, manager));
defer bun.default_allocator.free(all_workspaces);
try updateManifestsIfNecessary(manager, all_workspaces);
@@ -342,7 +342,7 @@ pub const OutdatedCommand = struct {
var at_least_one_greater_than_zero = false;
const patterns_buf = bun.default_allocator.alloc(FilterType, args.len) catch bun.outOfMemory();
const patterns_buf = bun.handleOom(bun.default_allocator.alloc(FilterType, args.len));
for (args, patterns_buf) |arg, *converted| {
if (arg.len == 0) {
converted.* = FilterType.init(&.{}, false);
@@ -459,15 +459,15 @@ pub const OutdatedCommand = struct {
if (package_name_len > max_name) max_name = package_name_len;
version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)}) catch bun.outOfMemory();
bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)}));
if (version_buf.items.len > max_current) max_current = version_buf.items.len;
version_buf.clearRetainingCapacity();
version_writer.print("{}", .{update_version.version.fmt(manifest.string_buf)}) catch bun.outOfMemory();
bun.handleOom(version_writer.print("{}", .{update_version.version.fmt(manifest.string_buf)}));
if (version_buf.items.len > max_update) max_update = version_buf.items.len;
version_buf.clearRetainingCapacity();
version_writer.print("{}", .{latest.version.fmt(manifest.string_buf)}) catch bun.outOfMemory();
bun.handleOom(version_writer.print("{}", .{latest.version.fmt(manifest.string_buf)}));
if (version_buf.items.len > max_latest) max_latest = version_buf.items.len;
version_buf.clearRetainingCapacity();
@@ -482,7 +482,7 @@ pub const OutdatedCommand = struct {
.workspace_pkg_id = workspace_pkg_id,
.is_catalog = dep.version.tag == .catalog,
},
) catch bun.outOfMemory();
) catch |err| bun.handleOom(err);
}
}
@@ -603,7 +603,7 @@ pub const OutdatedCommand = struct {
Output.pretty("{s}", .{table.symbols.verticalEdge()});
for (0..column_left_pad) |_| Output.pretty(" ", .{});
version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)}) catch bun.outOfMemory();
bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)}));
Output.pretty("{s}", .{version_buf.items});
for (version_buf.items.len..current_column_inside_length + column_right_pad) |_| Output.pretty(" ", .{});
version_buf.clearRetainingCapacity();
@@ -614,7 +614,7 @@ pub const OutdatedCommand = struct {
Output.pretty("{s}", .{table.symbols.verticalEdge()});
for (0..column_left_pad) |_| Output.pretty(" ", .{});
version_writer.print("{}", .{update.version.fmt(manifest.string_buf)}) catch bun.outOfMemory();
bun.handleOom(version_writer.print("{}", .{update.version.fmt(manifest.string_buf)}));
Output.pretty("{s}", .{update.version.diffFmt(resolution.value.npm.version, manifest.string_buf, string_buf)});
for (version_buf.items.len..update_column_inside_length + column_right_pad) |_| Output.pretty(" ", .{});
version_buf.clearRetainingCapacity();
@@ -625,7 +625,7 @@ pub const OutdatedCommand = struct {
Output.pretty("{s}", .{table.symbols.verticalEdge()});
for (0..column_left_pad) |_| Output.pretty(" ", .{});
version_writer.print("{}", .{latest.version.fmt(manifest.string_buf)}) catch bun.outOfMemory();
bun.handleOom(version_writer.print("{}", .{latest.version.fmt(manifest.string_buf)}));
Output.pretty("{s}", .{latest.version.diffFmt(resolution.value.npm.version, manifest.string_buf, string_buf)});
for (version_buf.items.len..latest_column_inside_length + column_right_pad) |_| Output.pretty(" ", .{});
version_buf.clearRetainingCapacity();