Dmitry Belyavsky (beldmit) wrote,
Dmitry Belyavsky
beldmit

Categories:

Загонная охота: завершение

Пофиксил сегодня баг, о котором писал здесь.

Ошибка оказалась не в асемблере, как я думал, а в формировании байтиков. При пересчёте длины новая длина писалась немного не туда, но в большинстве случаев это прокатывало. В норме эта ошибка дала бы классический эффект записи вне выделенного буфера и привела бы к падению программы куда раньше, и valgrind бы об этом рассказал — но тут нужный буфер из соображений упаковки структуры был размером в 16 байт, а использовали первые 13. Запись в 14-й, соответственно, никого не смущала.

Отладка сожрала примерно полтора рабочих дня и оставило ощущение собственного идиотизма, которое перешло в ощущение собственной гениальности после того, как удалось найти кусок кода, в который вкралась опечатка — до того я вылизывал соседнюю функцию, пока не убедился, что она в порядке. Ну а дальше сработало всё по Конан-Дойлю — исключение всех невозможных мест указало на истинного виновника.

Давно так не был доволен. This entry was originally posted at https://beldmit.dreamwidth.org/944351.html. Your comment? (comment count unavailable comments)
Tags: криптография, программирование, работа
Subscribe

  • Про математику

    Костя Кноп в фейсбуке затеял дискуссию о математике и зачем она нужна. Тамошние комменты читайте там, я вынесу некоторые свои соображения и…

  • OMIGOD — уязвимости Azure Open Management Infrastructure (OMI)

    Блог об информационной безопасности уже некоторое время как не веду, но не могу молчать. Azure устанавливала своего управляющего агента на…

  • До чего техника дошла

    Узнал про существование устройств , которые используют домашнюю проводку в качестве сетевого кабеля. Ну то есть про такое я слышал в своё время в…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 3 comments