aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-02 17:15:28 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-02 17:15:28 -0700
commita9aa3e732c2ff90ae4eff9cc8e6bb9111534d959 (patch)
tree7c51d9809b0db13f16f6d9cb10d6e838428398af
parentae0ea761ce3c0919f79847701fe32081351f3bef (diff)
downloadbun-a9aa3e732c2ff90ae4eff9cc8e6bb9111534d959.tar.gz
bun-a9aa3e732c2ff90ae4eff9cc8e6bb9111534d959.tar.zst
bun-a9aa3e732c2ff90ae4eff9cc8e6bb9111534d959.zip
Fix memory leak
-rw-r--r--src/bun.js/api/bun.zig4
-rw-r--r--src/bun.js/bindings/bindings.zig8
-rw-r--r--src/bun.js/webcore/response.zig2
3 files changed, 9 insertions, 5 deletions
diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig
index 324a6f9db..6fb3f0b4a 100644
--- a/src/bun.js/api/bun.zig
+++ b/src/bun.js/api/bun.zig
@@ -173,10 +173,10 @@ pub fn which(
return JSC.JSValue.jsNull().asObjectRef();
}
- path_str = ZigString.Slice.fromUTF8(
+ path_str = ZigString.Slice.fromUTF8NeverFree(
globalThis.bunVM().bundler.env.map.get("PATH") orelse "",
);
- cwd_str = ZigString.Slice.fromUTF8(
+ cwd_str = ZigString.Slice.fromUTF8NeverFree(
globalThis.bunVM().bundler.fs.top_level_dir,
);
diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig
index 7aa148c4d..f041d32f7 100644
--- a/src/bun.js/bindings/bindings.zig
+++ b/src/bun.js/bindings/bindings.zig
@@ -203,7 +203,7 @@ pub const ZigString = extern struct {
ptr: [*]const u8,
len: u32,
- pub fn fromUTF8(input: []const u8) Slice {
+ pub fn fromUTF8NeverFree(input: []const u8) Slice {
return .{
.ptr = input.ptr,
.len = @truncate(u32, input.len),
@@ -479,7 +479,11 @@ pub const ZigString = extern struct {
if (!this.isUTF8() and !strings.isAllASCII(untagged(this.ptr)[0..this.len])) {
var buffer = this.toOwnedSlice(allocator) catch unreachable;
- return Slice.fromUTF8(buffer);
+ return Slice{
+ .allocator = allocator,
+ .ptr = buffer.ptr,
+ .len = @truncate(u32, buffer.len),
+ };
}
return Slice{
diff --git a/src/bun.js/webcore/response.zig b/src/bun.js/webcore/response.zig
index 43b40b3b6..32e1e3f9b 100644
--- a/src/bun.js/webcore/response.zig
+++ b/src/bun.js/webcore/response.zig
@@ -3103,7 +3103,7 @@ pub const Blob = struct {
input_path = .{ .fd = store.data.file.pathlike.fd };
} else {
input_path = .{
- .path = ZigString.Slice.fromUTF8(store.data.file.pathlike.path.slice()),
+ .path = ZigString.Slice.fromUTF8NeverFree(store.data.file.pathlike.path.slice()),
};
}