10.3. 소프트웨어 관리
cr_compress_file_with_stat()
는 메모리 누수를 일으킬 수 있습니다.
createrepo_c
C 라이브러리에는 cr_compress_file_with_stat()
함수가 있습니다. 이 함수는 char **dst
를 두 번째 매개변수로 선언합니다. 다른 매개변수에 따라 cr_compress_file_with_stat()
둘 다 dst
를 입력 매개 변수로 사용하거나 할당된 문자열을 반환하는 데 사용합니다. 이 예기치 않은 동작은 사용자에게 dst
콘텐츠를 확보할 시기를 알려주지 않기 때문에 메모리 누수를 유발할 수 있습니다.
이 문제를 해결하기 위해 새 API cr_compress_file_with_stat_v2
함수가 추가되어 dst
매개 변수를 입력으로 사용합니다. 이 이름은 char *dst
로 선언됩니다. 이렇게 하면 메모리 누수가 방지됩니다.
cr_compress_file_with_stat_v2
기능은 임시이며 RHEL 8에서만 제공됩니다. 나중에 cr_compress_file_with_stat()
가 대신 수정됩니다.
(BZ#1973588)
스크릿이 실패할 때 보고된 YUM 트랜잭션
RPM 버전 4.6부터 설치 후 스크립트는 트랜잭션에 치명적이지 않고도 실패할 수 있습니다. 이 동작은 YUM에도 전파됩니다. 이로 인해 전체 패키지 트랜잭션이 성공적으로 보고하는 동안 스크릿이 종종 실패할 수 있습니다.
현재 사용 가능한 해결방법이 없습니다.
이는 RPM과 YUM 간에 일관되게 유지되는 예상 동작입니다. 스크립트의 모든 문제는 패키지 수준에서 처리되어야 합니다.
보안 DNF 업그레이드로 더 이상 사용되지 않는 패키지를 건너뛸 수 있습니다.
RHBA-2022:5816 권고와 함께 릴리스된 BZ#2095764 패치에는 다음과 같은 회귀 문제가 도입되었습니다. --security
옵션과 같은 보안 필터를 사용한 DNF 업그레이드는 더 이상 사용되지 않는 패키지 업그레이드를 건너뛸 수 있습니다. 이 문제는 설치된 패키지가 다른 사용 가능한 패키지로 사용되거나 사용 가능한 패키지에 대한 권고가 있는 경우 특히 발생합니다.
결과적으로 dnf
는 더 이상 사용되지 않는 패키지를 시스템에 남겨 두고 보안 업그레이드가 완전히 수행되지 않으므로 시스템을 취약한 상태로 유지할 수 있습니다.
이 문제를 해결하려면 보안 필터 없이 전체 업그레이드를 수행하거나 먼저 업그레이드 프로세스에 더 이상 사용되지 않는 패키지가 없는지 확인합니다.