Здравствуйте, Codealot, Вы писали:
V>>Ну вот ты и подставился, молодец...
C>Это тебе почудилось. Не знаю что ты там употребляешь, но лучше завязывай.
Мде...
Завязывай надувать щёки.
Ты прочитал по диагонали, не разобравшись, но спеси тут развёл — меня чуть не вырвало. ))
Суть произошедшего понятна — конфликт метаинформации, из-за чего две взаимодействующие подсистемы рассматривали лейаут объекта в памяти по-разному.
Тут даже не принципиально, что с одной стороны видели объект с 20-ю полями, а с другой с 21-м.
Конфликт метаинформации — это потенциально неверная реинтерпретация памяти.
Это и без AV серьёзнейшая ошибка.
(AV — это большое везение, повторюсь)
Вот у меня и возникает вопрос — а как так-то?
Вопрос риторический понятно, бо ответ мне хорошо известен — усилиями многих вредителей в отрасли вокруг байт-кодов сложилась нездоровая атмосфера эдакого всепрощенчества.
Мол, "оно всё равно проще и безопасней, можно лишний раз не париться".
Ты ж почитай того, кто тебе плюсовал — Синклера.
У меня порой волосы дыбом встают от настолько наивных рассуждений, высказываемых на самых серьёзных щах.
Иногда охота спросить: "Ну ты ведь шутишь, правда?" — а вот нихера, чистосердечно чел с ума сходит, бгг...
V>>Я тебе и на дотнете точно так же могу всё уронить, если полезу за пределы памяти объекта, и никакой валидатор не спасёт
C>Интересно посмотреть, как ты этого добьешься без ансейфа.
Например, через создание Span произвольного размера от произвольной управляемой ссылки через InteropServices.
Или через стандартную либу System.Runtime.CompilerServices — прибавляй к управляемой ссылке произвольное смещение и "щупай" память, рано или поздно наткнёшься на AV.
V>>Причём, в дотнете вокруг объекта обычно дофига выделенной и закомиченной под процесс памяти, т.е., чтобы нарваться на VA, необходимо обычно промазать очень далеко за память объекта.
V>>Т.е. дотнет маскирует ошибки подобного рода.
C>Очень интересно. Где тебе про это рассказали?
Это я наблюдаю каждый день, в т.ч. в экспериментах, в том числе в профайлере смотрю на блоки памяти.
В том числе специально воспроизводил ошибочные сценарии и наблюдал, как это контролирует платформа.
Аж никак.