
C 라이브러리로, CVE-2022-43680의 취약점 분석 및 익스플로잇에 중점을 둔 스트림 지향 XML 파싱을 제공하며, 퍼징 및 바이너리 수준 보안 테스트를 가능하게 합니다.
Expat, 릴리스 2.1.0
이것은 James Clark이 작성한 XML 파싱을 위한 C 라이브러리인 Expat입니다. Expat은 스트림 지향 XML 파서입니다. 즉, 파싱을 시작하기 전에 파서에 핸들러를 등록합니다. 이러한 핸들러는 파서가 파싱 중인 문서에서 연관된 구조를 발견할 때 호출됩니다. 시작 태그는 핸들러를 등록할 수 있는 구조의 한 예입니다.
Windows 사용자는 사전 컴파일된 라이브러리와 실행 파일, 그리고 개발자를 위한 소스 코드가 포함된 expat_win32bin 패키지를 사용해야 합니다.
Expat은 자유 소프트웨어입니다. 이 패키지와 함께 배포되는 COPYING 파일에 포함된 라이선스 조건에 따라 복사, 배포 및 수정할 수 있습니다. 이 라이선스는 MIT/X Consortium 라이선스와 동일합니다.
부 버전이 홀수인 Expat 버전(위 릴리스의 중간 숫자)은 개발 릴리스이며 베타 소프트웨어로 간주해야 합니다. 부 버전이 짝수인 릴리스는 프로덕션 등급 소프트웨어로 사용됩니다.
CVS 저장소에서 체크아웃하여 Expat을 빌드하는 경우, GNU autoconf 및 libtool 도구를 사용하여 configure 스크립트를 생성하는 스크립트를 실행해야 합니다. 이렇게 하려면 autoconf 2.58 이상이 필요합니다. 다음과 같이 스크립트를 실행하십시오:
./buildconf.sh
이 작업이 완료되면 소스 배포판에서 빌드할 때와 동일한 지침을 따르십시오.
소스 배포판에서 Expat을 빌드하려면 먼저 최상위 배포 디렉터리에서 구성 셸 스크립트를 실행합니다:
./configure
configure에 제공할 수 있는 많은 옵션이 있습니다(configure를 --help 옵션으로 실행하여 확인 가능). 가장 관심 있는 옵션은 설치 디렉터리를 설정하는 것입니다. 기본적으로 configure 스크립트는 libexpat을 /usr/local/lib에, expat.h를 /usr/local/include에, xmlwf를 /usr/local/bin에 설치하도록 설정합니다. 예를 들어 /home/me/mystuff/lib, /home/me/mystuff/include, /home/me/mystuff/bin에 설치하려면 다음과 같이 configure에 알릴 수 있습니다:
./configure --prefix=/home/me/mystuff
또 다른 흥미로운 옵션은 줄 및 열 번호와 전체 바이트 인덱스에 대해 64비트 정수 지원을 활성화하는 것입니다:
./configure CPPFLAGS=-DXML_LARGE_SIZE
그러나 이러한 수정은 ABI에 대한 변경을 초래하므로 일반적인 사용(예: Linux 배포판의 일부)에는 권장되지 않으며 특별한 요구 사항이 있는 빌드에만 사용하는 것이 좋습니다.
configure 스크립트를 실행한 후 "make" 명령으로 빌드하고 "make install"로 적절한 위치에 설치합니다. 추가 "make" 옵션을 알아보려면 "Makefile"을 살펴보십시오. 설치할 디렉터리에 대한 쓰기 권한이 있어야 합니다.
기본 UTF-8 대신 UTF-16 인코딩으로 문서 정보를 제공하도록 Expat을 빌드하려면 ("make distclean" 실행 후) 다음 지침을 따르십시오:
1. unsigned short로 UTF-16 출력(버전/오류 문자열은 char)을 사용하려면:
./configure CPPFLAGS=-DXML_UNICODE
wchar_t로 UTF-16 출력(버전/오류 문자열 포함)을 사용하려면:
./configure CFLAGS="-g -O2 -fshort-wchar" \
CPPFLAGS=-DXML_UNICODE_WCHAR_T
2. MakeFile을 편집하여 다음을 변경합니다:
LIBRARY = libexpat.la
를 다음으로 변경:
LIBRARY = libexpatw.la
(라이브러리 이름에 추가 "w"가 있음에 유의)
3. "make buildlib"을 실행합니다(라이브러리만 빌드).
또는 2단계를 생략하려면 "make buildlib LIBRARY=libexpatw.la"를 실행합니다.
4. "make installlib"을 실행합니다(라이브러리만 설치).
또는 2단계를 생략했다면 "make installlib LIBRARY=libexpatw.la"를 실행합니다.
DESTDIR 또는 INSTALL_ROOT 사용이 지원되며, INSTALL_ROOT는 DESTDIR의 기본값이며, 나머지 Makefile은 DESTDIR만 사용합니다. 작동 방식은 다음과 같습니다: $ make install DESTDIR=/path/to/image 는 Makefile 내에 설정된 DESTDIR을 재정의하고, 다음 두 가지 모두 $ INSTALL_ROOT=/path/to/image make install $ make install INSTALL_ROOT=/path/to/image 는 DESTDIR=$(INSTALL_ROOT)를 사용합니다. 환경에 DESTDIR이 최종적으로 정의되어 있더라도 변수 설정 우선순위는 다음과 같기 때문입니다:
참고: 이는 Expat 라이브러리 자체에만 적용되며, xmlwf 및 테스트의 UTF-16 버전 빌드는 현재 지원되지 않습니다.
Solaris 사용자를 위한 참고: "ar" 명령은 일반적으로 "/usr/ccs/bin"에 있으며, 기본 PATH에 포함되어 있지 않습니다. "make" 명령을 위해 PATH에 추가해야 하며, 아마도 GNU make로 전환해야 할 수도 있습니다(/usr/ccs/bin에 있는 "make"는 제대로 작동하지 않는 것 같습니다 — .PHONY 지시문을 이해하지 못하는 것으로 보입니다). ksh 또는 bash를 사용하는 경우 다음 명령으로 빌드하십시오:
PATH=/usr/ccs/bin:$PATH make
autoconf를 사용한 구성 프로젝트에서 Expat을 사용할 때는 conftools/expat.m4의 프로빙 매크로를 사용하여 Expat을 포함하는 방법을 결정할 수 있습니다. 자세한 내용은 해당 파일 상단의 주석을 참조하십시오.
참조 매뉴얼은 이 배포판의 doc/reference.html 파일에서 확인할 수 있습니다.
이 프로젝트의 홈페이지는 http://www.libexpat.org/ 입니다. 여기에는 버그 보고서 페이지로 연결되는 링크가 있습니다. 브라우저에 접근할 수 없을 때 버그를 보고해야 하는 경우 [email protected]로 이메일을 보낼 수도 있습니다.
향후 Expat 개발 방향에 대한 논의는 [email protected]에서 이루어집니다. 이 목록 및 기타 Expat 관련 목록의 아카이브는 다음에서 찾을 수 있습니다:
http://mail.libexpat.org/mailman/listinfo/