librtpkcs11ecp.so утечка памяти (memory leak)

Добрый день.
Обнаружил неочевидную утечку памяти в библиотеке librtpkcs11ecp.so.

Если в конфигурационном файле /etc/pam_pkcs11/pkcs11_eventmgr.conf в поле pkcs11_module установить библиотеку от opensc /usr/lib64/opensc-pkcs11.so, т.е.:

pkcs11_module = /usr/lib64/opensc-pkcs11.so;

и запустить

pkcs11_eventmgr nodaemon debug

то, память не копится:

[root@dev43 ~]# while true; do ps aux | grep pcscd | grep -v grep; sleep 2; done
root      964003  1.0  0.2 322772  8352 ?        Ssl  13:32   0:00 /usr/sbin/pcscd --foreground --auto-exit
...
root      964003  0.0  0.2 322772  8352 ?        Ssl  13:32   0:00 /usr/sbin/pcscd --foreground --auto-exit

Если же установить:

pkcs11_module = /usr/lib64/librtpkcs11ecp.so;

то, память начинает копиться:

[root@dev43 ~]# while true; do ps aux | grep pcscd | grep -v grep; sleep 2; done
root      964378  0.1  0.2 322772 11112 ?        Ssl  13:34   0:00 /usr/sbin/pcscd --foreground --auto-exit
root      964378  0.2  0.2 322772 11120 ?        Ssl  13:34   0:00 /usr/sbin/pcscd --foreground --auto-exit
root      964378  0.2  0.2 396504 11152 ?        Ssl  13:34   0:00 /usr/sbin/pcscd --foreground --auto-exit
root      964378  0.2  0.2 396504 11180 ?        Ssl  13:34   0:00 /usr/sbin/pcscd --foreground --auto-exit
root      964378  0.2  0.2 396504 11188 ?        Ssl  13:34   0:00 /usr/sbin/pcscd --foreground --auto-exit

Это не зависит от ОС (проверял на ОС Синтез и на Сentos 8) и от версий других пакетов.

Версии пакетов

[root@dev43 ~]# rpm -qa | grep opensc
opensc-0.19.0-7.el8.x86_64
[root@dev43 ~]# rpm -qa | grep pcsc
pcsc-lite-1.8.25-1.el8.x86_64
pcsc-lite-ccid-1.4.29-3.el8.x86_64
pcsc-lite-libs-1.8.25-1.el8.x86_64
[root@dev43 ~]# rpm -qa | grep pam_pkcs
pam_pkcs11-0.6.11-2.el8.sz.x86_64
[root@dev43 ~]# rpm -qa | grep librt
librtpkcs11ecp-1.9.4.0-0.el8.sz.x86_64

P.S. Поправьте проверку на бота при регистрации, чтобы он не был чувствителен к регистру. Чуть мозг не сломал, когда отвечал "Среда, Пятница, Земля", а надо было с маленькой буквы писать

Re: librtpkcs11ecp.so утечка памяти (memory leak)

Дейнеко Алексей, добрый день!

В новых версиях утечки должны быть устранены, проверьте пожалуйста, на свежих версиях librtpkcs11ecp.so: https://www.rutoken.ru/support/download/pkcs/#linux

P.S. Капчу форума проверим, спасибо что сообщили!

Re: librtpkcs11ecp.so утечка памяти (memory leak)

1. Спасибо, вроде бы текущая версия не течёт так очевидно. Однако, всё равно по какой-то причине память копится. Но, хоть не так быстро:

root      1641  0.1  0.0 600776  7476 ?        Ssl  17:05   0:03 /usr/sbin/pcscd --foreground --auto-exit
...
root      1641  0.1  0.0 600776  7532 ?        Ssl  17:05   0:03 /usr/sbin/pcscd --foreground --auto-exit
...
root      1641  0.1  0.0 600776  7572 ?        Ssl  17:05   0:03 /usr/sbin/pcscd --foreground --auto-exit

И пока, я не готов сказать что это связанно с новой версией библиотеки. Может быть причина в чём-то другом

2. Просьба, если есть возможность, добавить в spec новых версий пакетов следующее:

Provides:       librtpkcs11ecp.so()(64bit)

или сделать автоматическое проставление секции provides. Т.к., если на основе библиотеки и SDK собирать пакеты, то будут следующие зависимости:

librtpkcs11ecp
librtpkcs11ecp.so()(64bit)

Re: librtpkcs11ecp.so утечка памяти (memory leak)

Дейнеко Алексей, увеличение расхода памяти pcscd сложно напрямую связать с утечками памяти librtpkcs11ecp.