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

  • Победа сил Гугля над силами добра

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

  • Цифровые карты: как важно быть внимательным

    Продолжаю осваивать новые для себя технологии. На этот раз борюсь с цифровыми картами. Росбанк изменил мои тарифы без предупреждения, после…

  • Обустройство компа - WiFi.

    В Чехию я приехал с одним чемоданом, в который комп, естественно, не лез. Но лез ноутбук, на котором я и работал, пока не получил рабочее место от…

  • 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