Zoltán Kéri
e75a49f095
encoding/base32: Set optimization mode for decode()
2024-12-24 16:07:01 +01:00
Zoltán Kéri
93238db202
encoding/base32: Use consistent allocator and add proper cleanup
...
Fix memory handling throughout base32 package:
- Make padding map package-level constant (to avoid repeated allocs)
- Use passed allocator in encode's make() call
- Add defer delete for allocated memory in encode
- Add proper cleanup in test cases
- Fix memory cleanup of output buffers
The changes ensure consistent allocator usage and cleanup in both
implementation and tests.
2024-12-24 16:00:00 +01:00
Zoltán Kéri
f1f2ed3194
encoding/base32: Fix decode implementation per RFC 4648
...
Rework base32.decode() to properly handle all cases per RFC 4648:
- Fix error detection order:
- Check minimum length first (Invalid_Length)
- Check character validity (Invalid_Character)
- Check padding and structure (Malformed_Input)
- Fix padding validation:
- Add required padding length checks (2=6, 4=4, 5=3, 7=1 chars)
- Ensure padding only appears at end
- Fix handling of unpadded inputs
- Fix buffer handling:
- Proper output buffer size calculation
- Add bounds checking for buffer access
- Add proper buffer validation
For example:
- "M" correctly returns Invalid_Length (too short)
- "mzxq====" correctly returns Invalid_Character (lowercase)
- "MZXQ=" correctly returns Malformed_Input (wrong padding)
- Unpadded input lengths must be multiples of 8
These changes make the decode function fully compliant with RFC 4648
requirements while providing proper error handling.
2024-12-24 15:52:33 +01:00
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
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
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
FourteenBrush
f9dc848926
Pass allocator to implicitly (de)allocating procs in core:log
2024-11-30 23:43:39 +01:00
Waqar Ahmed
8a27042d24
Use a proper Queue in thread.Pool
...
With lots of tasks the dynamic array takes a big performance hit as its
allocating all the time on pop_front
2024-11-30 22:29:47 +05:00
Laytan Laats
1cece52359
dynlib: unload library before loading again & add LIBRARY_FILE_EXTENSION constant
2024-11-28 21:08:08 +01:00
Jeroen van Rijn
8581240ece
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-11-28 15:57:48 +01:00
Evan Martinez
36481f6d4a
Fix binomial function
2024-11-28 00:28:26 -07:00
zhylmzr
c2b6a14cd7
fix DNS_RECORD.Data error align on windows i386
...
fixed: https://github.com/odin-lang/Odin/issues/4520
2024-11-27 20:15:34 +08:00
Laytan Laats
ad80aa6d28
sys/info & odin report: rework macos version retrieval
2024-11-26 22:28:21 +01:00
Laytan Laats
767daf4a9c
add macos 15.1.1 to odin report and sys/info
2024-11-26 18:46:27 +01:00
o:tone
c3478e0002
fix unmarshal unhandled error ( #4515 )
...
* fix unmarshal unhandled error
2024-11-25 13:15:33 +01:00
gingerBill
12e7ff1e3c
Remove core:c/frontend
2024-11-24 12:32:10 +00:00
Colin Davidson
da3a7a25c7
oops
2024-11-20 14:07:23 -08:00
Colin Davidson
3bb73eacfc
fix parsing issue around utc/localtime split
2024-11-20 12:09:32 -08:00
jakubtomsu
86c84f2621
Fix a bug in hxa decoder found by the new check
2024-11-17 21:35:49 +01:00
Dudejoe870
4d22f1f544
Fix typo in Quaternion dot product
2024-11-17 10:42:59 -06:00
Laytan Laats
20f4f378b2
sys/posix: add MAP_ANONYMOUS
2024-11-17 13:52:08 +01:00
Laytan Laats
8f2766c4dc
add missing macos version
2024-11-16 15:42:13 +01:00
gingerBill
0781871efd
Merge pull request #4489 from laytan/os2-dir-leak-and-test
...
os2: fix leak in dir_windows, fix netbsd, and add a test for dir reading
2024-11-15 23:22:14 +00:00
Laytan Laats
282d956aa7
os2: skip dir test when unsupported
2024-11-15 21:56:55 +01:00
Laytan Laats
ce74325673
sys/posix: fix dirfd on netbsd
2024-11-15 21:22:23 +01:00
NicknEma
5486327e0b
Fix integer type
...
Change int to i32 so it is the correct size
2024-11-15 21:10:55 +01:00
Laytan Laats
de9d0134e4
os2: fix file type detection in dir_windows
2024-11-15 21:08:14 +01:00