Bug 28290 - Добавить в verify-elf проверку на использование stat в 32-битных программах
Summary: Добавить в verify-elf проверку на использование stat в 32-битных программах
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-28 13:10 MSK by Vitaly Lipatov
Modified: 2013-02-03 22:33 MSK (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2012-12-28 13:10:31 MSK
В связи с тем, что программы, использующие устаревший stat (скомпилированные без AC_SYS_LARGEFILE / -D_FILE_OFFSET_BITS=64) не будут корректно работать с 64-битными сетевыми файловыми системами (да и всё ядро уже переведено на 64-битные номера inode), требуется отучить такие программы использовать stat.

Начать это предлагается с добавления предупреждения (WARNING) по результатам проверки /usr/lib/rpm/verify-elf 32-битных бинарников, использующих функцию stat из glibc.
https://bugzilla.altlinux.org/show_bug.cgi?id=28214
Comment 1 Dmitry V. Levin 2013-01-11 03:11:09 MSK
В libc+zlib таких 32-битных функций с 64-битными аналогами 57 штук:
_IO_fgetpos
_IO_fsetpos
__fxstat
__fxstatat
__lxstat
__open
__xstat
adler32_combine
alphasort
crc32_combine
creat
fallocate
fgetpos
fopen
freopen
fseeko
fsetpos
fstatfs
fstatvfs
ftello
ftruncate
ftw
getdirentries
getrlimit
glob
globfree
gzoffset
gzopen
gzseek
gztell
lockf
lseek
mkostemp
mkostemps
mkstemp
mkstemps
mmap
nftw
open
openat
posix_fadvise
posix_fallocate
pread
preadv
prlimit
pwrite
pwritev
readdir
scandir
scandirat
sendfile
setrlimit
statfs
statvfs
tmpfile
truncate
versionsort
Comment 2 Repository Robot 2013-01-11 04:39:30 MSK
rpm-4.0.4-alt100.60 -> sisyphus:

* Fri Jan 11 2013 Dmitry V. Levin <ldv@altlinux> 4.0.4-alt100.60
- verify-elf: implemented LFS check (closes: #28290).
Comment 3 Dmitry V. Levin 2013-01-12 21:37:35 MSK
(In reply to comment #1)
> В libc+zlib таких 32-битных функций с 64-битными аналогами 57 штук:

Тестовая пересборка выявила 2615 пакетов, использующих non-LFS API.
В этом множестве есть пакеты на любой вкус и цвет, начиная с glibc.
Comment 4 Vitaly Lipatov 2013-02-03 22:23:43 MSK
(В ответ на комментарий №3)
> Тестовая пересборка выявила 2615 пакетов, использующих non-LFS API.
> В этом множестве есть пакеты на любой вкус и цвет, начиная с glibc.
Может быть нужный флаг сборки стоит добавить в optflags? А то получается, что касается большинства бинарных пакетов. Ну по примеру FORTIFY_SOURCE.
Comment 5 Vitaly Lipatov 2013-02-03 22:33:37 MSK
(В ответ на комментарий №4)
> (В ответ на комментарий №3)
> > Тестовая пересборка выявила 2615 пакетов, использующих non-LFS API.
> > В этом множестве есть пакеты на любой вкус и цвет, начиная с glibc.
> Может быть нужный флаг сборки стоит добавить в optflags? А то получается, что
> касается большинства бинарных пакетов. Ну по примеру FORTIFY_SOURCE.
Обсуждение в https://bugzilla.altlinux.org/show_bug.cgi?id=28214 прочитал, можно не отвечать :)