123 lines
5.1 KiB
JSON
123 lines
5.1 KiB
JSON
{
|
|
"inventory_date": "2025-07-13",
|
|
"analyzer": "Legacy C Cartographer",
|
|
"total_files": 18,
|
|
"total_modules": 5,
|
|
"modules": {
|
|
"auth": {
|
|
"files": ["auth_validate.c", "auth_hash.c", "auth_token.c"],
|
|
"entry_points": {
|
|
"auth_validate.c": "auth_validate_user(char* uid, char* token)",
|
|
"auth_hash.c": "compute_hash(char* input, char* salt)",
|
|
"auth_token.c": "issue_token(char* uid, int expires)"
|
|
},
|
|
"uncaptured": [
|
|
{"id": "U-01", "file": "auth_validate.c", "content": "세션 만료 시각 계산 로직"},
|
|
{"id": "U-02", "file": "auth_hash.c", "content": "랜덤 salt 생성 시드"},
|
|
{"id": "U-03", "file": "auth_token.c", "content": "토큰 갱신 주기 로직"}
|
|
],
|
|
"ocr_risk": {
|
|
"High": ["auth_hash.c:42-58"],
|
|
"Medium": ["auth_validate.c:33-50"],
|
|
"Low": ["auth_token.c"]
|
|
},
|
|
"transition_priority": "P1"
|
|
},
|
|
"net": {
|
|
"files": ["net_connect.c", "net_recv.c", "net_send.c", "net_pool.c"],
|
|
"entry_points": {
|
|
"net_connect.c": "net_establish(char* host, int port)",
|
|
"net_recv.c": "recv_packet(int fd, char* buf, int len)",
|
|
"net_send.c": "send_packet(int fd, char* buf, int len)",
|
|
"net_pool.c": "pool_acquire(pool_t* p)"
|
|
},
|
|
"uncaptured": [
|
|
{"id": "U-04", "file": "net_recv.c", "content": "최대 패킷 크기 검증"},
|
|
{"id": "U-05", "file": "net_pool.c", "content": "풀 고갈 시 fallback 정책"}
|
|
],
|
|
"ocr_risk": {
|
|
"High": ["net_connect.c:70-85", "net_recv.c:15-30"],
|
|
"Medium": ["net_send.c:41-55"],
|
|
"Low": ["net_pool.c"]
|
|
},
|
|
"transition_priority": "P1"
|
|
},
|
|
"data": {
|
|
"files": ["data_parse.c", "data_encode.c", "data_cache.c"],
|
|
"entry_points": {
|
|
"data_parse.c": "parse_payload(char* raw, payload_t* out)",
|
|
"data_encode.c": "encode_record(record_t* rec, char* out)",
|
|
"data_cache.c": "cache_lookup(cache_t* c, char* key)"
|
|
},
|
|
"uncaptured": [
|
|
{"id": "U-06", "file": "data_parse.c", "content": "인코딩 변환 손실 가능성"},
|
|
{"id": "U-07", "file": "data_encode.c", "content": "스키마 버전 간 변환 규칙"},
|
|
{"id": "U-08", "file": "data_cache.c", "content": "동시 접근 락 해제 타이밍 race condition"}
|
|
],
|
|
"ocr_risk": {
|
|
"High": ["data_cache.c:88-102"],
|
|
"Medium": ["data_parse.c:20-35", "data_encode.c:45-60"],
|
|
"Low": []
|
|
},
|
|
"transition_priority": "P1"
|
|
},
|
|
"log": {
|
|
"files": ["log_write.c", "log_format.c", "log_flush.c"],
|
|
"entry_points": {
|
|
"log_write.c": "log_commit(log_t* lg, char* msg)",
|
|
"log_format.c": "format_entry(log_t* lg, level_t lvl)",
|
|
"log_flush.c": "flush_buffer(log_t* lg)"
|
|
},
|
|
"uncaptured": [
|
|
{"id": "U-09", "file": "log_write.c", "content": "로그 로테이션 시점 결정 로직"},
|
|
{"id": "U-10", "file": "log_flush.c", "content": "비동기 flush 정합성 보장 조건"}
|
|
],
|
|
"ocr_risk": {
|
|
"High": [],
|
|
"Medium": ["log_format.c:21-40"],
|
|
"Low": ["log_write.c", "log_flush.c"]
|
|
},
|
|
"transition_priority": "P3"
|
|
},
|
|
"util": {
|
|
"files": ["util_str.c", "util_mem.c", "util_time.c", "util_base64.c", "util_hex.c"],
|
|
"entry_points": {
|
|
"util_str.c": "str_trim(char* s)",
|
|
"util_mem.c": "mem_copy(void* dst, void* src, int n)",
|
|
"util_time.c": "get_timestamp()",
|
|
"util_base64.c": "b64_encode(char* in, int len, char* out)",
|
|
"util_hex.c": "hex_dump(char* buf, int len, char* out)"
|
|
},
|
|
"uncaptured": [
|
|
{"id": "U-11", "file": "util_str.c", "content": "UTF-8 BOM 처리 규칙"},
|
|
{"id": "U-12", "file": "util_mem.c", "content": "오버플로우 시 복구 정책"},
|
|
{"id": "U-13", "file": "util_time.c", "content": "NTP 보정 시 시계 역행 처리"},
|
|
{"id": "U-14", "file": "util_base64.c", "content": "패딩 불일치 가능성"}
|
|
],
|
|
"ocr_risk": {
|
|
"High": ["util_mem.c:21-40"],
|
|
"Medium": ["util_str.c:10-25", "util_base64.c:30-45", "util_hex.c:41-55"],
|
|
"Low": ["util_time.c"]
|
|
},
|
|
"transition_priority": "P1"
|
|
}
|
|
},
|
|
"transition_priority_summary": {
|
|
"P1": ["auth_hash.c", "net_connect.c", "net_recv.c", "data_cache.c", "util_mem.c"],
|
|
"P2": ["auth_validate.c", "net_send.c", "data_parse.c", "data_encode.c", "util_str.c", "util_base64.c"],
|
|
"P3": ["auth_token.c", "net_pool.c", "log_write.c", "log_format.c", "log_flush.c", "util_time.c", "util_hex.c"]
|
|
},
|
|
"ocr_risk_summary": {
|
|
"High": [
|
|
{"file": "auth_hash.c", "lines": "42-58", "risk": "salt 생성 — 0/O 혼동"},
|
|
{"file": "net_recv.c", "lines": "15-30", "risk": "memset 오인식"},
|
|
{"file": "net_connect.c", "lines": "70-85", "risk": "소켓 옵션 — 0/O 혼동"},
|
|
{"file": "data_cache.c", "lines": "88-102", "risk": "TTL 부등호 방향"},
|
|
{"file": "util_mem.c", "lines": "21-40", "risk": "길이 파라미터 OCR 불안정"}
|
|
],
|
|
"Medium": 7,
|
|
"Low": 7
|
|
},
|
|
"uncaptured_total": 14,
|
|
"md_mapping_verified": true
|
|
}
|