mirror of
https://github.com/ziglang/zig.git
synced 2026-02-14 13:30:45 +00:00
ChildProcess: fix false positives in windowsCreateProcessSupportsExtension
Previously, the implementation would essentially check `startsWith` instead of `eql` (e.g. it would return true for `.exec` because it erroneously 'matched' `.exe`). Follow up to #13993
This commit is contained in:
parent
58c1d98c14
commit
aadd1b252e
@ -1357,6 +1357,7 @@ fn windowsCreateProcess(app_name: [*:0]u16, cmd_line: [*:0]u16, envp_ptr: ?[*]u1
|
||||
|
||||
/// Case-insenstive UTF-16 lookup
|
||||
fn windowsCreateProcessSupportsExtension(ext: []const u16) bool {
|
||||
if (ext.len != 4) return false;
|
||||
const State = enum {
|
||||
start,
|
||||
dot,
|
||||
@ -1413,6 +1414,11 @@ fn windowsCreateProcessSupportsExtension(ext: []const u16) bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
test "windowsCreateProcessSupportsExtension" {
|
||||
try std.testing.expect(windowsCreateProcessSupportsExtension(&[_]u16{ '.', 'e', 'X', 'e' }));
|
||||
try std.testing.expect(!windowsCreateProcessSupportsExtension(&[_]u16{ '.', 'e', 'X', 'e', 'c' }));
|
||||
}
|
||||
|
||||
/// Caller must dealloc.
|
||||
fn windowsCreateCommandLine(allocator: mem.Allocator, argv: []const []const u8) ![:0]u8 {
|
||||
var buf = std.ArrayList(u8).init(allocator);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user