Информация об изменениях

Сообщение Re[28]: А чего молчим про Crowdstrike от 15.10.2024 11:15

Изменено 15.10.2024 11:33 vdimas

Re[28]: А чего молчим про Crowdstrike
Здравствуйте, Codealot, Вы писали:

V>>Суть произошедшего понятна — конфликт метаинформации, из-за чего две взаимодействующие подсистемы рассматривали лейаут объекта в памяти по-разному.

C>И это привело к выходу за массив

За "массив данных" в тексте, плюс говорилось о полях объекта, плюс язык статьи предназначен для неспециалистов, но из описательной части видно, что произошёл выход за границы лейаута объекта в памяти.

А это уже не столь тривиально, как выход за границы массива-сущности ЯП, но в этих тонкостях разбираются только специалисты-айтишники, что выход за пределы данных при обращении к полю структуры — это более обескураживающий сценарий, чем оперирование невалидным индексом при обращении к массиву.


C>а не ошибке типизации


Это ошибка типизации, произошедшая из-за отсутствия полноценной метаинформации в рантайме VM, где такой рантайм следит за тем, чтобы информация о типах была синглтоном.

Это должно объяснять, почему AOT в дотнете не спешат делать для модулей (DLL/so), а лишь для приложения целиком, бо можно нарваться на похожие эффекты.


C>Если ты не облажался, то выхода за массив у тебя быть не должно. Всё остальное — всего лищь оправдания.


А кто перед кем тут оправдывается?
Что за манеры переводить обсуждение технических вещей в тыкание друг друга пальцами?


V>>Вопрос риторический понятно, бо ответ мне хорошо известен — усилиями многих вредителей в отрасли вокруг байт-кодов сложилась нездоровая атмосфера эдакого всепрощенчества.

C>Да ладно, не втирай. Во времена доминирования крестов говнокодеры были такие же, и львиная доля кода работала только благодаря тому, что звезды на текущий момент стояли в правильных созвездиях. Достаточно вспомнить про цирк с CString.Format("%s")

Ну да, теперь говнокодеры подались в другие языки, с другой "планочкой входа".
Теперь пишут на шарпах еще смешнее:
if (result.ToString().ToUpper() == "TRUE")

О чём и речь, что борьбу с говнокодерством некоторые несознательные трансформируют в борьбу с языками.
За это и порка. ))


V>>Например, через создание Span произвольного размера от произвольной управляемой ссылки через InteropServices.

C>Это разве не ансейф?

Запретить unsafe в проекте можно, и когда-то возможность такого запрета подавалась "железобетонным аргументом", почему я и привёл примеры для safe-кода.


V>>Это я наблюдаю каждый день, в т.ч. в экспериментах, в том числе в профайлере смотрю на блоки памяти.

C>"Мамой клянусь" — это не аргумент. Нужно посмотреть на конкретные доки и/или данные, которые можно проверить.

Это просто делёжка информацией, а не "мамой клянусь", бо слишком тривиальные вещи.

Я тебе дал сразу два способа, которые ты можешь проверить за единицы минут.
Re[28]: А чего молчим про Crowdstrike
Здравствуйте, Codealot, Вы писали:

V>>Суть произошедшего понятна — конфликт метаинформации, из-за чего две взаимодействующие подсистемы рассматривали лейаут объекта в памяти по-разному.

C>И это привело к выходу за массив

За "массив данных" в тексте, плюс говорилось о полях объекта, плюс язык статьи предназначен для неспециалистов, но из описательной части видно, что произошёл выход за границы лейаута объекта в памяти.

А это уже не столь тривиально, как выход за границы массива-сущности ЯП, но в этих тонкостях разбираются только специалисты-айтишники, что выход за пределы данных при обращении к полю структуры — это более обескураживающий сценарий, чем оперирование невалидным индексом при обращении к массиву.


C>а не ошибке типизации


Это ошибка типизации, произошедшая из-за отсутствия полноценной метаинформации в рантайме VM, где такой рантайм следит за тем, чтобы информация о типах была синглтоном.

Это должно объяснять, почему AOT в дотнете не спешат делать для модулей (DLL/so), а лишь для приложения целиком, бо можно нарваться на похожие эффекты.


C>Если ты не облажался, то выхода за массив у тебя быть не должно. Всё остальное — всего лищь оправдания.


А кто перед кем тут оправдывается?
Что за манеры переводить обсуждение технических вещей в тыкание друг друга пальцами?


V>>Вопрос риторический понятно, бо ответ мне хорошо известен — усилиями многих вредителей в отрасли вокруг байт-кодов сложилась нездоровая атмосфера эдакого всепрощенчества.

C>Да ладно, не втирай. Во времена доминирования крестов говнокодеры были такие же, и львиная доля кода работала только благодаря тому, что звезды на текущий момент стояли в правильных созвездиях. Достаточно вспомнить про цирк с CString.Format("%s")

Ну да, теперь говнокодеры подались в другие языки, с другой "планочкой входа".
Теперь пишут на шарпах еще смешнее:
if (result.ToString().ToUpper() == "TRUE")

О чём и речь, что борьбу с говнокодерством некоторые несознательные трансформируют в борьбу с языками.
За это и порка. ))


V>>Например, через создание Span произвольного размера от произвольной управляемой ссылки через InteropServices.

C>Это разве не ансейф?

Запретить unsafe в проекте можно, и когда-то возможность такого запрета подавалась "железобетонным аргументом", почему я и привёл примеры для safe-кода.


V>>Это я наблюдаю каждый день, в т.ч. в экспериментах, в том числе в профайлере смотрю на блоки памяти.

C>"Мамой клянусь" — это не аргумент. Нужно посмотреть на конкретные доки и/или данные, которые можно проверить.

Это просто делёжка информацией, а не "мамой клянусь", бо слишком тривиальные вещи.

Я тебе дал сразу два способа, которые ты можешь проверить за единицы минут.

=============
Вдогонку.
Мне шарп нравится, это удобный инструмент для многих задач.
Мне не нравится отношение некоторых весьма продуктивных здесь в общении товарищей к шарпу и к области байт-кодов в целом.
Ребятки классически с водой выплёскивают ребенка. ))