5.8 KiB
5.8 KiB
C 파일 세부 인벤토리 — 라인 단위 분석
생성일: 2025-07-13
분석자: Legacy C Cartographer
auth 模块 — 세부
auth_validate.c
Entry Point : auth_validate_user(char* uid, char* token)
라인 1-10 : 헤더 포함 구간
라인 11-32 : 파라미터 검증 ✅
라인 33-50 : 토큰 비교 로직 ⚠️ OCR Medium Risk (숫자 1/l 혼동)
라인 51-65 : 세션 조회 ✅
라인 66-80 : 세션 만료 처리 ❌ 미캡처 (만료 시각 계산 로직 부재)
라인 81-100 : 성공 응답 구성 ✅
auth_hash.c
Entry Point : compute_hash(char* input, char* salt)
라인 1-15 : 헤더 포함
라인 16-41 : 입력 전처리 ✅
라인 42-58 : Salt 생성 ⚠️ OCR High Risk (0/O 혼동)
라인 59-75 : 해시 계산 ✅
라인 76-90 : 결과 인코딩 ✅
auth_token.c
Entry Point : issue_token(char* uid, int expires)
라인 1-20 : 초기화 ✅
라인 21-45 : 토큰 생성 ✅
라인 46-60 : 갱신 타이밍 ❌ 미캡처 (갱신 주기 로직 부재)
라인 61-80 : 서명 ✅
net 模块 — 세부
net_connect.c
Entry Point : net_establish(char* host, int port)
라인 1-25 : 소켓 생성 ✅
라인 26-50 : 주소 해석 ✅
라인 51-69 : 연결 시도 ✅
라인 70-85 : 소켓 옵션 설정 ⚠️ OCR High Risk (0/O 혼동)
라인 86-100 : 에러 처리 ✅
net_recv.c
Entry Point : recv_packet(int fd, char* buf, int len)
라인 1-14 : 헤더 포함 ✅
라인 15-30 : 버퍼 초기화 ⚠️ OCR High Risk (memset 오인식)
라인 31-50 : 수신 루프 ✅
라인 51-65 : 길이 검증 ❌ 미캡처 (최대 패킷 크기 미정의)
라인 66-80 : 체크섬 검증 ✅
net_send.c
Entry Point : send_packet(int fd, char* buf, int len)
라인 1-20 : 준비 ✅
라인 21-40 : 전송 ✅
라인 41-55 : 재전송 카운터 ⚠️ OCR Medium Risk
라인 56-70 : 타임아웃 ✅
net_pool.c
Entry Point : pool_acquire(pool_t* p)
라인 1-15 : 초기화 ✅
라인 16-35 : 슬롯 할당 ✅
라인 36-50 : 풀 고갈 처리 ❌ 미캡처 (fallback 정책 부재)
data 模块 — 세부
data_parse.c
Entry Point : parse_payload(char* raw, payload_t* out)
라인 1-19 : 헤더 포함 ✅
라인 20-35 : 인코딩 식별 ⚠️ OCR Medium Risk (l/1 혼동)
라인 36-55 : 필드 파싱 ✅
라인 56-70 : 인코딩 변환 ❌ 미캡처 (변환 손실 가능성)
data_encode.c
Entry Point : encode_record(record_t* rec, char* out)
라인 1-20 : 준비 ✅
라인 21-44 : 스키마 버전 확인 ⚠️ OCR Medium Risk
라인 45-60 : 인코딩 ✅
라인 61-75 : 스키마 호환 ❌ 미캡처 (버전 간 변환 규칙)
data_cache.c
Entry Point : cache_lookup(cache_t* c, char* key)
라인 1-20 : 해시 계산 ✅
라인 21-45 : 버킷 탐색 ✅
라인 46-65 : 값 반환 ✅
라인 66-87 : TTL 갱신 ✅
라인 88-102 : TTL 비교 ⚠️ OCR High Risk (부등호 방향)
라인 103-120: 락 해제 ❌ 미캡처 (race condition)
log 模块 — 세부
log_write.c
Entry Point : log_commit(log_t* lg, char* msg)
라인 1-15 : 준비 ✅
라인 16-35 : 버퍼 기록 ✅
라인 36-50 : 로테이션 ❌ 미캡처 (로테이션 시점 결정 로직)
log_format.c
Entry Point : format_entry(log_t* lg, level_t lvl)
라인 1-20 : 포맷 준비 ✅
라인 21-40 : 타임스탬프 생성 ⚠️ OCR Medium Risk (형식 불일치)
라인 41-60 : 메시지 포맷 ✅
log_flush.c
Entry Point : flush_buffer(log_t* lg)
라인 1-15 : 플러시 트리거 ✅
라인 16-30 : 비동기 flush ❌ 미캡처 (정합성 보장 조건)
util 模块 — 세부
util_str.c
Entry Point : str_trim(char* s)
라인 1-15 : 초기화 ✅
라인 10-25 : 바이트 오프셋 ⚠️ OCR Medium Risk
라인 26-40 : 트리밍 로직 ✅
라인 41-55 : UTF-8 BOM ❌ 미캡처 (BOM 처리 규칙)
util_mem.c
Entry Point : mem_copy(void* dst, void* src, int n)
라인 1-20 : 헤더 포함 ✅
라인 21-40 : 복사 로직 ⚠️ OCR High Risk (길이 파라미터)
라인 41-55 : 오버플로우 검사 ❌ 미캡처 (복구 정책)
util_time.c
Entry Point : get_timestamp()
라인 1-15 : 시간 획득 ✅
라인 16-30 : 시계 역행 처리 ❌ 미캡처 (ntp 보정 시 동작)
util_base64.c
Entry Point : b64_encode(char* in, int len, char* out)
라인 1-20 : 테이블 준비 ✅
라인 21-35 : 인코딩 루프 ✅
라인 30-45 : 테이블 인덱스 ⚠️ OCR Medium Risk
라인 46-60 : 패딩 처리 ❌ 미캡처 (패딩 불일치 가능성)
util_hex.c
Entry Point : hex_dump(char* buf, int len, char* out)
라인 1-20 : 준비 ✅
라인 21-40 : 변환 ✅
라인 41-55 : 출력 형식 ⚠️ OCR Medium Risk (파편화)
요약 테이블
| 파일 | 총라인 | 검증완료 | OCR위험 | 미캡처 | 전환상태 |
|---|---|---|---|---|---|
| auth_validate.c | 100 | 70% | Medium | 1 | 대기 |
| auth_hash.c | 90 | 80% | High | 1 | 대기 |
| auth_token.c | 80 | 75% | Low | 1 | 대기 |
| net_connect.c | 100 | 85% | High | 0 | 대기 |
| net_recv.c | 80 | 70% | High | 1 | 대기 |
| net_send.c | 70 | 80% | Medium | 0 | 대기 |
| net_pool.c | 50 | 70% | Low | 1 | 대기 |
| data_parse.c | 70 | 75% | Medium | 1 | 대기 |
| data_encode.c | 75 | 80% | Medium | 1 | 대기 |
| data_cache.c | 120 | 80% | High | 1 | 대기 |
| log_write.c | 50 | 70% | Low | 1 | 대기 |
| log_format.c | 60 | 75% | Medium | 0 | 대기 |
| log_flush.c | 30 | 60% | Low | 1 | 대기 |
| util_str.c | 55 | 75% | Medium | 1 | 대기 |
| util_mem.c | 55 | 70% | High | 1 | 대기 |
| util_time.c | 30 | 70% | Low | 1 | 대기 |
| util_base64.c | 60 | 80% | Medium | 1 | 대기 |
| util_hex.c | 55 | 80% | Low | 0 | 대기 |