Bug 34049 - файлы размером более 2ГБ не читаются
: файлы размером более 2ГБ не читаются
Status: REOPENED
: Branch p8
(All bugs in Branch p8/streebog)
: не указана
: x86 Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-10-22 20:06 by
Modified: 2018-07-21 23:37 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2017-10-22 20:06:59
> gost3411-2012  файл_2ГБ
выдаёт:
    gost3411-2012: файл_2ГБ: Value too large for defined data type
т.е. не работает.

файлы размером меньше 2ГБ читаются streebog нормально.

проблема в функции fopen()
  см. gost3411-2012.c  строка 377.
------- Comment #1 From 2017-10-23 08:43:19 -------
$ rpm -q streebog 
streebog-0.11-alt3.git8de633e

$ du -hs *
2,7G    alt-8-server-x86_64.iso
4,4G    alt-simply-8.2.0-x86_64.iso

$ gost3411-2012 alt-8-server-x86_64.iso 
GOST R 34.11-2012 (alt-8-server-x86_64.iso) =
06c722d57b4dac2079b8002b2ff6f4b93fb6c44f8684a1b1ed4de5fb6ced77ec6f72d52d7a7c04687a9197265412743f8f45eb6622bf261a29d583dd41518eec

$ gost3411-2012 alt-simply-8.2.0-x86_64.iso 
GOST R 34.11-2012 (alt-simply-8.2.0-x86_64.iso) =
08772da96d6fec6abd24fc9c4d50dbb9b5494212e835a7139e0462420634251bc7cfeeeaccef2b6b73b74b7468e34fc3c3e73bbbfbf2b23fde5e77646de87904
------- Comment #2 From 2017-10-23 18:59:04 -------
Обращаю Ваше внимание:
---> Platform: x86  <---
Так указано в заголовке.
Т.е. не 64 бита а 32.
------- Comment #3 From 2017-10-23 20:08:02 -------
Всё осталось по прежнему.
------- Comment #4 From 2017-10-23 20:30:34 -------
Переоткрыл ошибку заново,
  ранее "закрытую" Evgeniy Korneechev.
------- Comment #5 From 2017-10-24 09:40:33 -------
(В ответ на комментарий №2)
> Обращаю Ваше внимание:
> ---> Platform: x86  <---
Извиняюсь, этого не заметил.

Тогда на Sisyphus - там версия эта же.
------- Comment #6 From 2017-10-24 19:26:41 -------
Вопрос элементарный т.к. есть СИСТЕМНАЯ команда MD5SUM,
  которая работает "как надо" с 2ГБ файлами на 32 битах.

Но вопрос этот СИСТЕМНЫЙ, а не прикладной.
  т.е. к специалисту по ЯДРУ
     точнее по файловой подсистеме.
       Там должна быть "Ядрёная" функция вместо Си-шной fopen(),
         которая позволяет читать любые файлы в файловой системе.
------- Comment #7 From 2017-10-24 19:54:18 -------
установил ошибку на Branch p8 заново,
  ранее установленную на Sisyphus Evgeniy Korneechev.

т.к. без привязки к конкретной версии операционной системы
    данный вопрос не имеет смысла (см. выше).
------- Comment #8 From 2017-12-23 10:31:21 -------
решение:
указать опцию компилятора при сборке
  -D_FILE_OFFSET_BITS=64

пример:
gcc -march=i686 -msse2 -D_FILE_OFFSET_BITS=64 gost3411-2012-core.c
gost3411-2012.c

подробности смотри:
forum.altlinux.org/index.php?topic=40262.0
------- Comment #9 From 2018-07-21 23:37:14 -------
Upstream report: [0] https://github.com/adegtyarev/streebog/issues/18
Patch: [1]
https://github.com/adegtyarev/streebog/commit/676bdae8961115c03e1868873c3cfa03dbbc10ad

ALT Linux Streebog package: [2] http://www.sisyphus.ru/ru/srpm/streebog --
Текущая версия: 0.11-alt3.git8de633e -- можно обновиться до версии 0.12 из
апстрима, хотя в 0.12 функциональных отличий немного:

- Добавлены Dockerfile и "изкоробочный" RPM-spec, который был обкатан на
сборках для различных ахритектур и версий RPM-based дистрибутивов: [3]
https://build.opensuse.org/package/show/home:k_mikhail/GOST34.11-2012