Commit Graph

7492 Commits

Author SHA1 Message Date
Zoltán Kéri
7672ac945a encoding/base32: Add RFC 4648 test suite
Add test suite based on RFC 4648 test vectors and validation rules:
- Add section 10 test vectors for valid encoding/decoding
- Add test cases for invalid character handling (section 3.2)
- Add test cases for padding validation (section 4)
- Add test cases for length requirements (section 6)

The test vectors verify that:
- Empty string encodes/decodes correctly
- Standard cases like "foo" -> "MZXW6===" work
- Invalid characters are rejected
- Missing or malformed padding is detected
- Invalid lengths are caught
2024-12-24 15:28:34 +01:00
Zoltán Kéri
b9338777e3 encoding/base32: Fix buffer allocation and bounds checking
Fix buffer allocation size calculation and add proper bounds checking to
ensure output buffer has sufficient space. This fixes crashes that could
occur with inputs like "AA" and other edge cases where the output buffer
was too small.

Remove #no_bounds_check as proper bounds checking is necessary for safe
error handling. The small performance trade-off is worth the improved
robustness.
2024-12-24 02:20:32 +01:00
Zoltán Kéri
8c761627c8 encoding/base32: Replace assertions with error returns
Replace assertions with proper error handling in base32.decode() to allow
programs to handle invalid input gracefully rather than crashing.

The function now returns ([]byte, Error) instead of just []byte.
2024-12-24 02:17:57 +01:00
Jeroen van Rijn
ad99d20d29 Remove outdated PNG save helpers 2024-12-23 16:33:23 +01:00
dmitriy.gorevoy
e82a0c8fc7 Fixed crash in arena_free_all() for bootstrapped growing arenas.
When trying to set arena.curr_block.used = 0 after mem.zero() caused a crash because if the arena is bootstrapped its memory will be zeroed out after mem.zero() thus making arena.cur_block point to zero.
2024-12-23 09:25:18 +01:00
Joao Fukuda
28e226381d Remove extra white space
Got in on 0a2200f without me noticing, mb.
2024-12-22 16:09:51 -03:00
Joao Fukuda
0a2200fa12 Fix issue #4612 2024-12-22 15:53:54 -03:00
Misomosi
276dab69b6 Pack MDEI struct to fix issue #4407 2024-12-22 10:12:10 -05:00
blob1807
f07a6f463c Fix io.write_escaped_rune not writing full value 2024-12-22 23:10:42 +10:00
avanspector
a20d85df1e Fix os_haiku.odin (again) 2024-12-21 17:15:53 +01:00
avanspector
365e24ce8d Remove error baselines from Errno to make fmt clearer 2024-12-21 17:09:57 +01:00
avanspector
cb42b88e13 Update errno.odin 2024-12-21 16:54:45 +01:00
Karl Zylinski
e5f32e1455 Makes tracking allocator default to crashing on a bad free instead of add to bad_free_array. The bad_free_array remains to not break old code. The new default behavior is implemented in a callback that you can override, there's a second provided callback that provides the old behavior where an element was added to bad_free_array. Rationale: Many people are just checking the allocation_map, but don't check the bad free array. Several examples throughout core that use tracking allocator don't check bad_free_array either, so people have been taught not to check it. 2024-12-21 15:49:48 +01:00
chris-montero
c06f79bb36 fixed memory leak in core/prof/spall/doc.odin example code 2024-12-21 15:53:55 +02:00
avanspector
be4748831d Delete errors.odin 2024-12-20 17:25:15 +01:00
avanspector
5376d2a20b fix haiku 2024-12-20 17:19:04 +01:00
jason
b73275cf42 Get arm64 up to speed in os2 linux
Readded open flags for arm64 to sys/linux/bits.odin. Make process_start
name based instead of descriptor based to allow running of scripts. Fix
bug in heap_linux. Fix and simplify os2.remove.
2024-12-19 17:12:07 -05:00
gingerBill
61368d942e Merge pull request #4589 from Pariatech/add-trunc-to-linalg-glsl
Add trunc to glsl linalg
2024-12-18 21:20:17 +00:00
Gabriel Pariat
e0b7bfd21e add trunc to glsl linalg 2024-12-17 13:06:59 -05:00
Laytan
8b1c9b0ff5 Merge pull request #4568 from giuliano-macedo/master
docs: improved `slice.reinterpret` docstring
2024-12-14 16:46:17 +01:00
Giuliano Macedo
6785a485e3 docs: improved reinterpret docstring 2024-12-14 10:10:06 -03:00
GonkieDev
6bcfafc3a8 typo fixed (MOUSE_ATTRIUBTTES_CHANGED -> MOUSE_ATTRIBUTES_CHANGED) 2024-12-11 21:02:43 +00:00
Laytan Laats
6e1d028861 fix #4389 - retrieve file type by opening if other methods failed 2024-12-06 23:51:14 +01:00
Laytan Laats
f1cae8d844 fix #4496 - allow unlock of unlocked mutex (making it consistent with windows behaviour) 2024-12-06 23:08:47 +01:00
Laytan Laats
7edd332993 fix #4536 - stack buffer overflow for size_of 0 types in struct unmarshal 2024-12-06 22:12:52 +01:00
gingerBill
e4bdc4ff7c Merge pull request #4562 from dozn/patch-1
Move Struct Field Zipping Outside of Loop
2024-12-06 14:21:01 +00:00
Laytan Laats
cf53404f5f sync: fix no new values 2024-12-05 20:05:19 +01:00
Laytan Laats
ac3a87c2cf sync: fix require results 2024-12-05 19:04:45 +01:00
Laytan Laats
ad438f418d sync: fix futexes on wasm 2024-12-05 19:00:45 +01:00
gingerBill
d452d37b93 Fix #4537 2024-12-05 15:51:05 +00:00
dozn
37fb2754a1 Move Struct Field Zipping Outside of JSON Token Loop 2024-12-05 07:23:34 -08:00
Adam Zadrożny
5dfc24882f improve strings.index_multi
There's no point searching for substrings after lowest_index,
so let's not.

This significantly improves performance on long strings.
2024-12-04 14:29:49 +01:00
gingerBill
c79466ab3c Merge pull request #4548 from Bazzas-Forks/linalg-clamp-length
[core:math/linalg] Add `linalg.clamp_length(vector, max_length) -> clamped_vector`
2024-12-04 12:05:06 +00:00
flysand7
49b8abe3ef Apply suggestions from code review
Co-authored-by: Laytan <laytanlaats@hotmail.com>
2024-12-04 22:50:10 +11:00
flysand7
ba6224b61a Apply suggestions from code review
Co-authored-by: Laytan <laytanlaats@hotmail.com>
2024-12-04 19:11:21 +11:00
Ycros
7edc46f1b9 fix: regex's match_with_preallocated_capture returning num_groups 2024-12-04 13:51:27 +11:00
gingerBill
af8122e8c7 Merge pull request #4541 from Waqar144/work/thread-pool-use-queue
Use a proper Queue in thread.Pool
2024-12-02 12:04:28 +00:00
gingerBill
1a84820e83 Merge pull request #4542 from FourteenBrush/master
Pass allocator to implicitly (de)allocating procs in `core:log`
2024-12-02 10:55:09 +00:00
gingerBill
d0f87913e2 Fix #4549 2024-12-02 10:49:49 +00:00
Bazzagibbs
4b76568596 Add linalg.clamp_length(vector, max_length) -> clamped_vector 2024-12-02 11:58:36 +11:00
Damian Tarnawski
26415bcb0e Correct handling newlines between build tags in core:odin
Previously I thought that each newline worked as `OR`
basically the same as `,`.

This corrects this to work as `AND` instead.
2024-12-01 18:21:26 +01:00
flysand7
8387561d0a [core/simd]: Write package documentation 2024-12-02 01:24:33 +11:00
Laytan Laats
e6a9f93e9f dynlib: unload library before loading again & add LIBRARY_FILE_EXTENSION constant 2024-12-01 11:54:56 +11:00
Jeroen van Rijn
ad8bff4d3a Make O_RDONLY default for os.open on all platforms.
And also moved Windows file procs to `os_windows.odin`, in line with all the other platforms who didn't have a dedicated `file_<platform>.odin`
2024-12-01 11:54:56 +11:00
Evan Martinez
486a650630 Fix binomial function 2024-12-01 11:54:56 +11:00
zhylmzr
2bd6fc9ebd fix DNS_RECORD.Data error align on windows i386
fixed: https://github.com/odin-lang/Odin/issues/4520
2024-12-01 11:54:56 +11:00
Laytan Laats
da4347f790 sys/info & odin report: rework macos version retrieval 2024-12-01 11:54:56 +11:00
Laytan Laats
5a201d588b add macos 15.1.1 to odin report and sys/info 2024-12-01 11:54:56 +11:00
o:tone
d15d152746 fix unmarshal unhandled error (#4515)
* fix unmarshal unhandled error
2024-12-01 11:54:55 +11:00
gingerBill
d85de2e54e Remove core:c/frontend 2024-12-01 11:54:54 +11:00