안녕하세요.
RedHat 5.7 사용자입니다.
/lib64/lib-2.5.so 파일을 다른 디렉토리에 복사했다가 다시 원래 위치로 복사했더니 시스템이 멈춰버렸습니다.
그래서 리부팅했더니 아래 메세지가 나오면서 부팅이 않됩니다.
/sbin/init: error while loading shared libraries: /lib64/libc.so.6: file too short
Kernel panic - not syncing: Attempted to kill init!
위 테스트를 하게된 동기는
so파일을 만들어 사용하다가 동일한 so파일을 복사하면 SIGBUG를 받으며 application이 죽더군요.
( 기존에 사용하던 AIX에서는 없던 현상입니다.)
AIX와 달리 Linux에서는 shared library를 만들때 library versioning을 해야한다고 해서 ldconfig도 사용했습니다.
대략 dlopen()시에 문제가 발생하는 것 같은데요. 정확한 이유를 모르겠습니다.
왜 동일한(= 변경되지 않은) so 파일이 복사만 되어도 문제가 되는건지 궁금합니다.
많은 분들의 고견을 기다립니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 프로그래밍 관련 Q&A 게시판 입니다. | woos | 2016.04.09 | 22269 |
» | [질문] libc-2.5.so 파일을 복사했더니 시스템이 멈춰버렸어요. | 이창우 | 2012.05.07 | 7651 |
.