12.7. 컴파일러 및 개발 도구


glibc 종료 함수가 더 이상 동시 호출에 충돌하지 않음

이번 업데이트 이전에는 다중 스레드 애플리케이션에서 glibc 종료 함수 및 동시 stdio.h 스트림 작업에 대한 동시 호출이 동기화되지 않았습니다. 이로 인해 애플리케이션이 예기치 않게 종료되거나 데이터 손상이 발생할 수 있었습니다. 이번 업데이트를 통해 exit 및 quick_exit 함수는 stdio.h 스트림 플러시를 동기화하고 하나의 종료 호출만 계속 진행할 수 있습니다. 결과적으로 이 시나리오에서 애플리케이션이 더 이상 충돌하지 않으며 전체 안정성이 향상되었습니다.

getchar 와 같이 stdio.h 스트림에서 읽기 작업을 차단하거나 flockfile 을 사용하여 스트림을 잠그는 애플리케이션은 읽기 작업이 완료되거나 잠금이 해제될 때까지 종료할 수 없습니다. 이 동작은 POSIX 표준에 필요합니다.

Jira:RHEL-111117[1]

누락된 세마포를 열 때 sem_open 에서 초기화되지 않은 결과가 수정됨

이번 업데이트 이전에는 존재하지 않고 O_CREAT 플래그를 지정하지 않고 이름이 지정된 세마포에 대해 sem_open 함수를 호출하면 정의된 오류 표시기 대신 초기화되지 않은 값이 반환될 수 있습니다.

그 결과 errno가 의미 있는 값으로 설정되지 않았기 때문에 유효하지 않은 세마포어 처리를 사용하고 오류를 잘못 해석하는 등 영향을 받는 애플리케이션이 정의되지 않은 동작을 관찰했습니다.

이번 릴리스에서는 SEM _ FAILED 를 명시적으로 반환하고 존재하지 않는 세마포에 대해 호출되고 O_CREAT 플래그가 지정되지 않은 경우 errno 를 ENOENT 로 설정합니다.

결과적으로 애플리케이션은 이 오류 상태를 안정적으로 감지하고 누락된 세마포마포를 예측 가능하고 표준을 준수하는 방식으로 처리할 수 있습니다.

Jira:RHEL-119392[1]

입력 스트림 및 공유 파일 설명자에 대해 수정된 glibc stdio 플러시 문제

이번 업데이트 이전에는 입력 스트림을 플러시할 때 glibc 표준 I/O 구현이 POSIX를 완전히 준수하지 않았습니다. 이로 인해 ungetc 후 fflush 가 입력 스트림, fflush(NULL) 라고 할 때 일관성 없는 동작이 잘못 처리되었으며, 공유 파일 설명자 또는 특수 문자 장치에서 fclose 가 작동할 때 잘못된 파일 오프셋이 발생했습니다.

결과적으로 애플리케이션은 예기치 않은 입력 스트림 상태, 잘못된 기본 파일 위치, 메모리 매핑된 입력 파일에 fseek 및 fflush 를 사용할 때 파일 위치 오류를 확인할 수 있으며 이로 인해 잘못된 데이터 처리 버그가 발생할 수 있습니다.

이번 릴리스에서는 fflush가 ungetc 이후 및 fflush 로 호출되는 경우 fflush 가 POSIX 호환 방식으로 입력 스트림을 처리하도록 glibc stdio 라이브러리가 수정되었습니다. 또한 fclose 는 공유 파일 설명자의 기본 파일 오프셋을 업데이트하고 특수 문자 장치에서 올바르게 작동하며 메모리 매핑된 입력 파일에서 fseek 및 fflush 에 대한 파일 위치 지정 논리가 수정되었습니다.

결과적으로 입력 처리, 공유 파일 설명자 사용 또는 메모리 매핑된 입력 파일을 위해 stdio 에 의존하는 애플리케이션이 업데이트 후 예측 가능하고 올바르게 작동합니다.

Jira:RHEL-119434[1]

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동