fix(audit): Free previous values in EntryBuilder setters
- setTable, setSql, setBefore, setAfter now free old value before setting new - Prevents memory leak if setter is called multiple times on same builder
This commit is contained in:
parent
489a461732
commit
2d334edf96
1 changed files with 8 additions and 0 deletions
|
|
@ -357,6 +357,8 @@ pub const EntryBuilder = struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setTable(self: *Self, table: []const u8) !*Self {
|
pub fn setTable(self: *Self, table: []const u8) !*Self {
|
||||||
|
// Liberar valor anterior si existe (evitar leak si se llama 2 veces)
|
||||||
|
if (self.table) |t| self.allocator.free(t);
|
||||||
self.table = try self.allocator.dupe(u8, table);
|
self.table = try self.allocator.dupe(u8, table);
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
@ -367,16 +369,22 @@ pub const EntryBuilder = struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setSql(self: *Self, sql: []const u8) !*Self {
|
pub fn setSql(self: *Self, sql: []const u8) !*Self {
|
||||||
|
// Liberar valor anterior si existe
|
||||||
|
if (self.sql) |s| self.allocator.free(s);
|
||||||
self.sql = try self.allocator.dupe(u8, sql);
|
self.sql = try self.allocator.dupe(u8, sql);
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setBefore(self: *Self, before: []const u8) !*Self {
|
pub fn setBefore(self: *Self, before: []const u8) !*Self {
|
||||||
|
// Liberar valor anterior si existe
|
||||||
|
if (self.before) |b| self.allocator.free(b);
|
||||||
self.before = try self.allocator.dupe(u8, before);
|
self.before = try self.allocator.dupe(u8, before);
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setAfter(self: *Self, after: []const u8) !*Self {
|
pub fn setAfter(self: *Self, after: []const u8) !*Self {
|
||||||
|
// Liberar valor anterior si existe
|
||||||
|
if (self.after) |a| self.allocator.free(a);
|
||||||
self.after = try self.allocator.dupe(u8, after);
|
self.after = try self.allocator.dupe(u8, after);
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue