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

  • Менять невозможно по собственной воле среду обитанья

    Уф. Прошёл квест "смени страну в Google Play", потому что без него не ставилось приложение от T-Mobile. А там это, сладкое слово "халява",…

  • Чешский, продолжение

    Пока у меня долго и нудно идёт билд, напишу про то, как я учу чешский полгода спустя после начала. По словарному запасу по-прежнему самым важным…

  • Метажизнь

    Конвеевскую «Жизнь» IT-шники нашего поколения знают примерно все. Про Тьюринг-полноту «Жизни» тоже слышали. Попались несколько красивых ссылок на…

  • 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