Я нашёл пару косяков в коде открытия JPEG файлов. И первый из них - это быстрое определение что файл может быть JPEG-ом. Там проверяется только один первый байт файла, что он равен 255. Хотя там как минимум 3 первых байта имеют фиксированое значение, а четвёртый имеет всего 3 варианта.
Косяк на этом этапе может привести ко второму факапу - полному чтению всего файла (по одному байту), только для того, что бы понять, что это не JPEG. И это очень может быть больно, если чтение дорогое.