Fix possible utf16 out of bounds issue

This commit is contained in:
gingerBill
2026-04-02 12:54:07 +01:00
parent 1d8c44a98c
commit 039c438af2
2 changed files with 7 additions and 7 deletions

View File

@@ -465,7 +465,7 @@ get_computer_name_and_account_sid :: proc(username: string) -> (computer_name: s
return "", {}, false
}
cname_w := make([]u16, computer_name_size context.temp_allocator)
cname_w := make([]u16, computer_name_size, context.temp_allocator)
res = LookupAccountNameW(
nil,

View File

@@ -39,19 +39,19 @@ encode :: proc "contextless" (d: []u16, s: []rune) -> int {
loop: for r in s {
switch r {
case 0..<_surr1, _surr3 ..< _surr_self:
if m+1 < n { break loop }
if n >= m { break loop }
d[n] = u16(r)
n += 1
case _surr_self ..= MAX_RUNE:
if m+2 < n { break loop }
if n+1 >= m { break loop }
r1, r2 := encode_surrogate_pair(r)
d[n] = u16(r1)
d[n+1] = u16(r2)
n += 2
case:
if m+1 < n { break loop }
if n >= m { break loop }
d[n] = u16(REPLACEMENT_CHAR)
n += 1
}
@@ -65,19 +65,19 @@ encode_string :: proc "contextless" (d: []u16, s: string) -> int {
loop: for r in s {
switch r {
case 0..<_surr1, _surr3 ..< _surr_self:
if m+1 < n { break loop }
if n >= m { break loop }
d[n] = u16(r)
n += 1
case _surr_self ..= MAX_RUNE:
if m+2 < n { break loop }
if n+1 >= m { break loop }
r1, r2 := encode_surrogate_pair(r)
d[n] = u16(r1)
d[n+1] = u16(r2)
n += 2
case:
if m+1 < n { break loop }
if n >= m { break loop }
d[n] = u16(REPLACEMENT_CHAR)
n += 1
}