Про баги в libtommath [FB3]
В FB3 затащили внешнюю библиотеку для работы с большими числами — libtommath. Затащили как есть. Только за это хочется взять черенок от лопаты…
Весной 2016-го, при переносе этой библиотеки в код IBProvider, была проведена её ревизия, нормализация кода и созданы тесты. Ошибок было найдено «больше одной штуки».
В начале декабре 2016-го, в процессе нагрузочного тестирования отладочной сборки, сработал ассерт в mp_div — обнаружилась ошибка с проверкой принадлежности индекса допустимому диапазону.
А сегодня в логе нагрузочного тестирования обнаружил запись:
... 1. [LCPI.IBProvider.3]: Ошибка вызова функции libtommath [set01] - mp_exptmod. Код ошибки: -3. ...
И тут уже, судя по всему, если и стоит ругаться, то только на себя. В сообщении об ошибке вызова mp_exptmode надо было указать значения аргументов 🙁
IBP_BigInteger IBP_BigInteger::modPow(const self_type& pow, const self_type& mod)const { self_type rc; CHECK_MP_OP(mp_exptmod, (m_data.ptr(), pow.m_data.ptr(), mod.m_data.ptr(), rc.m_data.ptr())); return rc; }//modPow
Вот кто бы подсказал это сразу …
hvlad on 10 марта, 2017
> Ошибок было найдено «больше одной штуки».
Сколько из них ты сообщил авторам ?