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

  • Почти по Ершову

    Есть в России медицина: "Спутник" норм была вакцина, "Ковивак" и так и сяк, Третья вовсе "Эпивак" This entry was originally posted at…

  • Золушка-2021

    Придумалась (вероятно, не мне первому) сказка про короновирусную Золушку, которая должна на лестнице обронить маску (ну порвалась резиночка, всё…

  • (no subject)

    Фрактальный ящик Пандоры: открываешь - а в нём ящик поменьше, внутри которого проблем столько же, и ещё один ящик внутри. This entry was originally…

  • 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