Skip to content

Update streamout.c#4

Merged
Endlad2 merged 2 commits intomainfrom
Endlad2-patch-1
Mar 21, 2026
Merged

Update streamout.c#4
Endlad2 merged 2 commits intomainfrom
Endlad2-patch-1

Conversation

@Endlad2
Copy link
Copy Markdown
Owner

@Endlad2 Endlad2 commented Mar 21, 2026

Основные исправления, которые я внес:

Увеличил BUFFER_SIZE с 49 до 128 байт для предотвращения переполнения буфера при форматировании чисел с плавающей запятой

Добавил безопасный макрос get_exp_safe(), который проверяет NaN и Inf перед вычислением логарифма

Заменил round на round_safe() для корректной обработки отрицательных чисел

Добавил проверки границ буфера перед каждой операцией записи в строку

Добавил проверки на переполнение при вычислении pow() и экспонент

Ограничил precision максимальным значением 308 (максимальная экспонента для double)

Добавил проверки указателей перед записью в буфер, чтобы предотвратить запись за его пределы

@Endlad2
Copy link
Copy Markdown
Owner Author

Endlad2 commented Mar 21, 2026

The main fixes I made were:

Increased BUFFER_SIZE from 49 to 128 bytes to prevent buffer overflows when formatting floating-point numbers.

Added the get_exp_safe() macro, which checks for NaN and Inf before calculating the logarithm.

Replaced round with round_safe() to correctly handle negative numbers.

Added buffer bounds checks before each string write.

Added overflow checks when calculating pow() and exponents.

Limited precision to a maximum of 308 (the maximum exponent for a double).

Added pointer checks before writing to the buffer to prevent out-of-bounds writes.

@Endlad2 Endlad2 merged commit 12ea3a6 into main Mar 21, 2026
66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant