Bug 35901 - Не показывает папки, если количество файлов в них превышает 29 шт.
Summary: Не показывает папки, если количество файлов в них превышает 29 шт.
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: vsftpd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-14 20:54 MSK by Gryzun
Modified: 2020-12-19 22:13 MSK (History)
5 users (show)

See Also:


Attachments
Исправление проблемы (16.21 KB, text/x-csrc)
2019-01-14 20:56 MSK, Gryzun
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gryzun 2019-01-14 20:54:54 MSK
Если количество элементов в папке на ftp сервере превышает 29 - сервер разрывает соединение данных.
Причины такого поведения, кроются в sandbox в котором запускается vsftpd. При перечислении файлов в запрошенной папке, vsftpd успешно перечисляет их, а затем пытается отсортировать вызовом qsort. Если количество элементов для сортировки qsort превышает 31, то под них выделяется память, а перед её выделением происходит проверка количества установленного ОЗУ машины. Для проверки используется ядерная функция sysinfo, которая запрещена песочницей.
В качеств исправления предлагаю добавить следующие строки в файл seccompsandbox.c, функция seccomp_sandbox_setup_base:

  /* Needed for qsort. */
  allow_nr(__NR_sysinfo);

Изменённый файл seccompsandbox.c прилагаю.
Comment 1 Gryzun 2019-01-14 20:56:05 MSK
Created attachment 7944 [details]
Исправление проблемы
Comment 2 Nicom 2020-02-23 21:47:58 MSK
Другой вариант ухода от проблемы (не её исправление), добавить в файл конфига vsftpd строку отключающую песочницу - seccomp_sandbox=NO

Проблема всё-ещё воспроизводится на vsftpd: version 3.0.3 в alt starterkit p9

Подобный баг уже появлялся ранее https://bugzilla.altlinux.org/show_bug.cgi?id=27752
Comment 3 Repository Robot 2020-12-19 22:13:04 MSK
vsftpd-3.0.3-alt2 -> sisyphus:

 Sat Dec 19 2020 Dmitry V. Levin <ldv@altlinux> 3.0.3-alt2
 - Updated seccomp filter (closes: #27752, #35901).
 - Fixed build with gcc-10.