170 похожих чатов

Https://Pastebin.Com/3NhLQ4P4 Вот есть рабочий код, но если перенести uint8_t connect_reply[2]; на

31 строку, то оно выдаст throw ServerNotSuitable(); Почему так?

16 ответов

22 просмотра
GNU/Линуксяша-libre- Автор вопроса

Компилятор clang

Почему тут connect_reply вообще доживает до использования в строке 32?

GNU/Линуксяша-libre
Не знаю, но доживает как-то

> доживает как-то Объясни, пожалуйста, почему. Насколько я вижу, это локальная переменная в другой лямбде, вызов которой вообще говоря завершается до 32 строчки, и у тебя use-after-free (ну точнее вариация uaf когда память на стеке, но неважно)

GNU/Линуксяша-libre- Автор вопроса
Mikail Bagishov
> доживает как-то Объясни, пожалуйста, почему. ...

Я сама не знаю, она по идее доживать не должна, но это делает

GNU/Линуксяша-libre
Я сама не знаю, она по идее доживать не должна, но...

> это делает А почему ты считаешь, что доживает?

GNU/Линуксяша-libre- Автор вопроса
GNU/Линуксяша-libre
Потому что значение верное

И нету никаких ошибок сегментации

GNU/Линуксяша-libre
Потому что значение верное

Ну сомнительная аргументация, может это верное значение перетирает что-то важное.

Mikail Bagishov
> доживает как-то Объясни, пожалуйста, почему. ...

а чего, в 2к24 ещё компилятор не научился такие ошибки ловить в плюсах?

Mikail Bagishov
компилятор-то научился, лет 8 назад

только другого языка компилятор

GNU/Линуксяша-libre
А почему не ловит?

Потому что под санитайзерами надо запускаться

Mikail Bagishov
только другого языка компилятор

Он тоже ничего не умеет. Запрет просто использовать почти что ≠ отслеживание кривого использования

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта