-
-
Notifications
You must be signed in to change notification settings - Fork 615
HWPX 저장 시 폼 컨트롤 속성값(caption) XML 특수문자 이중 이스케이프 누적 #1534
Copy link
Copy link
Closed
1 / 11 of 1 issue completedLabels
bugSomething isn't workingSomething isn't workinghwpxHWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선HWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선serialization문서 저장/직렬화: HWPX/HWP 출력, XML/OLE 속성 보존, roundtrip 저장 정합성문서 저장/직렬화: HWPX/HWP 출력, XML/OLE 속성 보존, roundtrip 저장 정합성
Milestone
Description
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinghwpxHWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선HWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선serialization문서 저장/직렬화: HWPX/HWP 출력, XML/OLE 속성 보존, roundtrip 저장 정합성문서 저장/직렬화: HWPX/HWP 출력, XML/OLE 속성 보존, roundtrip 저장 정합성
요약
HWPX 직렬화(저장) 시 폼 컨트롤 속성값(예:
<hp:checkBtn caption="...">)의 XML 특수문자(&,<,>)가 이중 이스케이프되어, 저장할 때마다 손상이 한 겹씩 누적된다. 일반<hp:t>본문 텍스트는 정상이며, 폼 필드 속성에만 발생한다.재현
대상 샘플:
samples/hwpx/form-002.hwpx(체크박스 caption에&포함)cargo build --release ./target/release/rhwp hwpx-roundtrip samples/hwpx/form-002.hwpx -o output/poc/bug # 저장본(form-002.rt.hwpx)을 다시 roundtrip → 누적 확인 ./target/release/rhwp hwpx-roundtrip output/poc/bug/form-002.rt.hwpx -o output/poc/bug2증상 (저장할수록 누적)
section0.xml의<hp:checkBtn caption="...">속성값:IP R&&D연계IP R&&D연계IP R&amp;&amp;D연계IP R&&D연계(손상)IP R&amp;amp;&amp;amp;D연계매 저장마다
&→&가 추가되어 무한 누적된다. 한컴에서 열면 폼 필드 캡션이R&&D처럼 깨져 보인다.범위 / 원인 추정
<hp:t>텍스트 노드)은 정상:aift.hwpx,[2027] 온새미로 1 본교재.hwpx의&포함 본문은 무손상 roundtrip 확인.caption외name,command등 다른 속성도 점검 필요).&/</>/따옴표 포함 시.회귀 게이트 사각지대
hwpx-roundtrip --batch및cargo test --test hwpx_roundtrip_baseline의 ir-diff가 이 결함을 잡지 못함(IR_DIFF 0으로 통과). 폼 컨트롤 속성값이 IR 비교 대상에 포함되지 않는 사각지대가 있으므로, 수정과 함께 회귀 가드 보강 필요.검증 환경
samples/hwpx/전수 53개 테스트: baseline 4/4 통과, 구조 roundtrip 56/57 PASS(1건은 .hwpx 확장자의 HWP5 파일로 제외), 저장본 렌더(SVG) 52/52 정상.참고 (별건, 본 이슈 범위 외)
k-water-rfp.hwpx저장본에서 페이지 경계 부근 빈 줄 5개 증가(문단 수·본문 보존, 페이지네이션 미세 차이). 데이터 손상 아님 — 필요 시 별도 이슈로 분리.