Bug 34085 - clamscan не видит файлов и каталогов, имеющих inode >2^32
: clamscan не видит файлов и каталогов, имеющих inode >2^32
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/clamav)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-10-28 18:41 by
Modified: 2017-10-30 15:02 (History)


Attachments


Note

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


Description From 2017-10-28 18:41:23
На система ALT p8 32 бит имеется задача сканировать рекурсивно каталог
/var/ftp/pvt/Windows на наличие вирусов с помощью clamscan:

# clamscan --include "exe" -r -i /var/ftp/pvt/Windows

Проблема в том, что clamscan выдает:

----------- SCAN SUMMARY -----------
Known viruses: 2903579
Engine version: 0.98-exp
Scanned directories: 1
Scanned files: 0
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 30.321 sec (0 m 30 s)

Но на самом деле каталог отнюдь не пуст и содержит много вложенных каталогов с
файлами, требующих проверки.
------- Comment #1 From 2017-10-28 21:06:21 -------
Ошибка, выявленная strace:
openat(AT_FDCWD, "/var/ftp/pvt/Windows",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4
getdents(4, 0x8fcce68, 32768)           = -1 EOVERFLOW (Value too large for
defined data type)

Нужно попросить clamscan использовать getdents64 путём сборки с 
-D_FILE_OFFSET_BITS=64

точнее, добавить AC_SYS_LARGEFILE в configure.ac
https://bugzilla.altlinux.org/show_bug.cgi?id=28214#c4
------- Comment #2 From 2017-10-29 18:58:17 -------
(In reply to comment #1)

> Нужно попросить clamscan использовать getdents64 путём сборки с 
> -D_FILE_OFFSET_BITS=64
> 
> точнее, добавить AC_SYS_LARGEFILE в configure.ac
> https://bugzilla.altlinux.org/show_bug.cgi?id=28214#c4

В http://git.altlinux.org/tasks/192637/build/100/i586/log сейчас есть такое:

checking for _FILE_OFFSET_BITS value needed for large files... 64

Но проверить мне негде. В p8 из этого задания, вроде как, ставится.
------- Comment #3 From 2017-10-29 19:39:17 -------
(В ответ на комментарий №2)
> (In reply to comment #1)
> 
> > Нужно попросить clamscan использовать getdents64 путём сборки с 
> > -D_FILE_OFFSET_BITS=64
> > 
> > точнее, добавить AC_SYS_LARGEFILE в configure.ac
> > https://bugzilla.altlinux.org/show_bug.cgi?id=28214#c4
> 
> В http://git.altlinux.org/tasks/192637/build/100/i586/log сейчас есть такое:
> 
> checking for _FILE_OFFSET_BITS value needed for large files... 64
> 
> Но проверить мне негде. В p8 из этого задания, вроде как, ставится.
Это не проблема. 
Я проверил, заработало. Спасибо! Жду в Сизифе и сможете в p8?

...
----------- SCAN SUMMARY -----------
Known viruses: 6326557
Engine version: 0.99.2
Scanned directories: 1
Scanned files: 6
------- Comment #4 From 2017-10-29 19:48:48 -------
clamav-0.99.2-alt4 -> sisyphus:

Sun Oct 29 2017 Sergey Y. Afonin <asy@altlinux.ru> 0.99.2-alt4
- used AC_SYS_LARGEFILE (ALT #34085)
- removed "Packager" field
- corrected "License" field