[devel] __libc_enable_secure в openssl libcrypto
Mikhail Novosyolov
mikhailnov на altlinux.org
Сб Апр 18 02:21:43 MSK 2020
Попробовал собрать AppImage на основе библиотек из Альта. AppImage - это такая штука, где сбандлены необходимые для работы программы библиотеки, но libc используется системная, что позволяет и программу запускать в разных дистрибутивах, и системные плагины NSS использовать. Для этой цели собрал в сизиф пакет linuxdeployqt.
Оказалось, что libcrypto.so.10 (я делал на основе p8, то же самое будет относиться и к сизифу) использует внутренний в glibc интерфейс __libc_enable_secure, который не выведен наружу в других дистрибутивах.
Это сделано патчем openssl-owl-alt-issetugid.patch:
> --- openssl/crypto/uid.c
> +++ openssl/crypto/uid.c
> @@ -77,8 +77,12 @@ int OPENSSL_issetugid(void)
> # include OPENSSL_UNISTD
> # include <sys/types.h>
>
> +extern int __libc_enable_secure;
> +
> int OPENSSL_issetugid(void)
> {
> + if (__libc_enable_secure)
> + return 1;
> if (getuid() != geteuid())
> return 1;
> if (getgid() != getegid())
В связи с этим возник вопрос: в Альте glibc запатчен, чтобы вывести эту внутреннюю функцию?
Используется ли она в каких-либо еще внешних потребителях?
Подробная информация о списке рассылки Devel