리눅스 커널 7.3-rc2, kmalloc() 호출을 kmalloc_obj()로 추가 전환 — Coccinelle이 놓친 scoped_guard 함수들
9월 6일 공개된 리눅스 커널 7.3-rc2에는 기능 추가 없이 코드 모양만 바꾸는 대형 패치가 하나 들어갔습니다. 키스 쿡(Kees Cook)이 보낸 kmalloc_obj() 전환 풀 리퀘스트입니다. 304개 파일에서 637줄이 추가되고 726줄이 삭제됐습니다.…
9월 6일 공개된 리눅스 커널 7.3-rc2에는 기능 추가 없이 코드 모양만 바꾸는 대형 패치가 하나 들어갔습니다. 키스 쿡(Kees Cook)이 보낸 kmalloc_obj() 전환 풀 리퀘스트입니다. 304개 파일에서 637줄이 추가되고 726줄이 삭제됐습니다.…
Docker는 root 권한으로 도는 dockerd 데몬에 명령을 보내는 구조라서, docker 그룹에 사용자를 넣는 순간 그 사용자는 사실상 root가 된다. docker run -v /:/host로 호스트 파일시스템 전체를 마운트할 수 있기 때문이다.…
장애 상황을 재현하려고 보면 소스가 없는 바이너리이거나, 디스크를 실제로 가득 채우거나 시스템 시계를 바꿔야 하는 경우가 많다. 코드를 고치지 않고 "이 프로그램이 어떤 파일을 여는지", "디스크가 꽉 차면 에러 처리를…
셸 스크립트에서 파일 이름의 확장자를 떼거나 경로에서 디렉터리만 뽑을 때 습관적으로 basename, dirname, sed, tr을 호출하곤 한다. 한두 번이면 문제없지만 수천 개 파일을 도는 루프 안에서는 명령마다 프로세스가 새로 뜨면서…
매크로(macro)는 함수 호출 비용 없이 코드를 재사용하고, 타입에 상관없이 동작하는 코드를 만들 수 있어 C에서 자주 쓰인다. 문제는 전처리기가 문법을 이해하지 않고 토큰을 그대로 치환한다는 점이다. SQUARE(1 + 2)가 5가…
작업하던 파일을 main_final.py, main_final2.py로 복사해 두다 보면 어느 것이 최신인지 금방 헷갈린다. 며칠 전 동작하던 코드로 돌아가고 싶은데 그 시점의 사본이 없기도 하다. Git은 이 문제를 파일 사본이 아니라 "변경…
커널 하드닝 옵션 randstruct와 Rust는 지금까지 한 커널에 함께 들어갈 수 없었습니다. Kconfig에 depends on !RANDSTRUCT가 박혀 있어 둘 중 하나를 켜면 다른 하나가 조용히 꺼집니다. 문제는 이 규칙이 커널의…
이번 주 LWN.net 위클리 에디션(9월 3일자) 주요 내용이다. Python 스티어링 카운슬이 JIT 컴파일러 개발을 PEP 승인 전까지 멈춰 세웠고, 그 결과 나온 PEP 836은 "이건 PEP 두 개여야 한다"는 지적에…
클라우드 VM의 디스크를 200GB로 늘렸는데 df -h는 여전히 100GB를 가리킨다. 반대로 LVM 볼륨을 줄였더니 파일시스템이 아예 마운트되지 않는다. 둘 다 흔한 사고이고 원인은 같다. 우리가 "디스크 크기"라고 뭉뚱그려 부르는 값은…
오픈소스 공급망 공격 사건 하나가 5개월 만에 체포로 이어졌습니다. 호주연방경찰(AFP)은 8월 26일 웨스턴오스트레일리아 세 곳에서 압수수색을 집행하고, 다음 날 20대 남성 두 명을 퍼스 치안법원에 세웠습니다. 두 사람에게 적용된 혐의는…