Dec. 16th, 2016

beldmit: (Программизм)
Пару недель назад мне прислали багрепорт на open engine — открытую реализацию алгоритмов ГОСТа для OpenSSL. Это меня с одной стороны обрадовало — приятно, когда твоим кодом пользуются — а с другой огорчило: год назад всё работало. Правда, это было ещё до релиза версии 1.1.0...

Вскрытие показало, что в Makefile отсутствовала директива -Werror, из-за чего выдавались только предупреждения в тех местах, где API поменялось. Исправление сборки само по себе не изменило ситуацию, пришлось лезть в дебаггер.

Две ошибки я устранил быстро, и заработал TLS с 2001-м годом. А с 2012-м ситуация не исправилась.

Несколько вечеров я провёл, долбясь головой об стенку и изучая каждый diff за год, благо их немного. Потом удалось воспроизвести ошибку не на TLS, где отлаживать приходилось с двух концов, а на smime. И на пятый день индеец Зоркий Глаз заметил, что полностью изменена была система сборки, и в CMake-овских правилах не было проверок на endianess. По нелепому стечению обстоятельств затрагивало это только два алгоритма, которые я заподозрить не успел. После исправления всё заработало. Так что этот хвост не будет меня беспокоить в новогоднюю ночь.

Profile

beldmit: (Default)
beldmit

August 2017

S M T W T F S
  12345
678 9 101112
13 1415 1617 1819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 23rd, 2017 04:11 am
Powered by Dreamwidth Studios