Я выполнил нечеткость на dcraw и обнаружил исключение с плавающей запятой.
Чем это чревато? Он считывает некоторую длину plen
из поврежденного файла и вычисляет foo[i % plen]
. Если plen == 0
, то это undefined по стандарту, и gcc выдает исключение с плавающей запятой. РЕДАКТИРОВАТЬ: И исключение не перехватывается (это C), и программа завершается.
Должно ли меня это волновать? Есть ли какой-нибудь сценарий, в котором это можно было бы использовать в своих интересах или привести к другим плохим последствиям? Одним из возможных правильных действий кода было бы заметить, что файл поврежден и просто существует. Чем это отличается от запуска FPE с последующим выходом?
(Я удивлен, что не нашел вопроса по этому поводу, потому что это кажется мне очень простым.)