aboutsummaryrefslogtreecommitdiff
path: root/src/resolver/resolve_path.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-09-19 18:16:51 -0700
committerGravatar GitHub <noreply@github.com> 2023-09-19 18:16:51 -0700
commit5defdf3e28249b34772864a50273a390d345b2df (patch)
tree499f8138fae7309a4ba1ce00041604a96ab04deb /src/resolver/resolve_path.zig
parentf8d7f50cdbee67e938205afbb71b3e13cfddeba3 (diff)
downloadbun-5defdf3e28249b34772864a50273a390d345b2df.tar.gz
bun-5defdf3e28249b34772864a50273a390d345b2df.tar.zst
bun-5defdf3e28249b34772864a50273a390d345b2df.zip
Fixes #5769 (#5775)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/resolver/resolve_path.zig')
-rw-r--r--src/resolver/resolve_path.zig20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/resolver/resolve_path.zig b/src/resolver/resolve_path.zig
index f74211709..381abc648 100644
--- a/src/resolver/resolve_path.zig
+++ b/src/resolver/resolve_path.zig
@@ -829,7 +829,25 @@ pub fn joinStringBuf(buf: []u8, _parts: anytype, comptime _platform: Platform) [
var written: usize = 0;
const platform = comptime _platform.resolve();
- var temp_buf: [4096]u8 = undefined;
+ var temp_buf_: [4096]u8 = undefined;
+ var temp_buf: []u8 = &temp_buf_;
+ var free_temp_buf = false;
+ defer {
+ if (free_temp_buf) {
+ bun.default_allocator.free(temp_buf);
+ }
+ }
+
+ var count: usize = 0;
+ for (_parts) |part| {
+ count += if (part.len > 0) part.len + 1 else 0;
+ }
+
+ if (count * 2 > temp_buf.len) {
+ temp_buf = bun.default_allocator.alloc(u8, count * 2) catch @panic("Out of memory");
+ free_temp_buf = true;
+ }
+
temp_buf[0] = 0;
for (_parts) |part| {