본문으로 건너뛰기

© 2026 Molayo

Phoronix헤드라인2026. 06. 20. 23:31

6년간의 노력과 360개 이상의 패치 끝에 Linux, strncpy API 마침내 제거

요약

Linux 커널에서 버그의 원인이 되었던 strncpy API가 6년간의 노력 끝에 제거되었습니다. 성능 문제와 NUL 종료 관련 오류를 해결하기 위해 strscpy 등 더 안전하고 효율적인 대체 함수들이 도입되었습니다.

핵심 포인트

  • strncpy의 직관적이지 않은 동작과 성능 문제 해결
  • 6년간 362개의 커밋을 통해 커널 내 사용처 제거 완료
  • strscpy, strscpy_pad 등 안전한 대체 API 사용 권장

6년간의 노력과 360개 이상의 패치 끝에 Linux, strncpy API 마침내 제거

LINUX KERNEL

Linux 커널 내의 strncpy 함수는 직관적이지 않은 의미론(semantics)과 NUL 종료(NUL termination) 관련 동작, 그리고 목적지의 불필요한 제로 필링(zero-filling)으로 인한 성능 문제 때문에 수년 동안 "지속적인 버그의 근원"이 되어 왔습니다. 커널 내의 strncpy 코드 사용처를 제거하기 위해 지난 6년 동안 약 362개의 커밋이 투입되었으며, 이제 Linux 7.2를 통해 결승선을 통과하게 되었습니다.

금요일에 진행된 이번 병합(merge)을 통해 strncpy API와 마지막 per CPU 아키텍처 strncpy 구현체들이 제거되었습니다.

strncpy 대신, Linux 커널 코드는 NUL 종료 목적지를 위해 strscpy(), 제로 패딩(zero-padding)이 포함된 NUL 종료 목적지를 위해 strscpy_pad(), NUL 종료되지 않는 고정 너비 필드를 위해 strtomem_pad(), 명시적 패딩이 포함된 경계 복사(bounded copies)를 위해 memcpy_and_pad(), 또는 알려진 길이의 메모리 복사를 위해 memcpy()를 사용해야 합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0