syzbot - memory leak in gsm_activate_mux
·
Linux/start_contribute()
그나마 쉬운 버그를 찾아서 방황하던중 누군가 패치를 제출했지만, 승인이 되지 않은 memory leak 관련 버그를 찾았다. 도전할만 하다고 생각돼서 분석, 해결 시작.Crash Report[ 165.195884][T11142] sysfs: cannot create duplicate filename '/devices/virtual/tty/gsmtty1'[ 165.196865][T11142] CPU: 1 PID: 11142 Comm: repro Tainted: G W 6.7.0-rc8-00055-g5eff55d725a4 #14[ 165.198016][T11142] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_c..
syzbot 버그픽스 기여 방법
·
Linux/start_contribute()
Syzbot을 위한 환경 설정git clone 리눅스 커널 가져오기버그 찾기c repro가 있는 것, open되어 있는 것 중에서 찾고, out of bounds를 위주로 찾아보자!! 이게 쉽다. 그리고 로컬 QEMU환경에서 버그를 재현해야한다.Kernel Build 하기리포트에 명시되어 있는, config를 활용하여 commit hash로 checkout한다. 그리고 이 상태에서 빌드한다.make olddefconfig : 커널의 루트에 .config작성하고 적용make -j$(nproc) bzImage : bzImage로 빌드환경 만들기 syzkaller clone해오기 파일 시스템 이미지 준비 (Debian Trixie): trixie.img 엔진: bzImage 차체: tr..
3주 동안의 첫 직장 마무리!
·
똥글
여의도에 SW 회사에 입사한지 3주정도가 흘렀다.영어로 면접을 보고, 탈락할 줄 알았는데... 운이 좋게도 붙었었다. 3/30에 처음 입사를 하고, 같은 인턴 동기들과 인사를 나누고 관련 교육을 받았다.내 기대와는 달리... 한국인들이 너무 적었다. 한국말보다 외국어가 더 많이 들려서 뭔가 속이 울렁울렁..거리기도 했다.첫 출근을 하고서는 "하... 계속 다녀야하나.."라는 생각이 계속 들었던 것 같다. 커널, 드라이버 같은 관련 직무가 있는게 아닌 대부분Autosar, MCU, ECU를 하는 걸로 알고 있어서고민을 많이 했었다. 원래 하루 다니고 퇴사하려했지만 그 사이에 적응도 하고 착하고 좋은 인턴동기들도 만나서어찌저찌 3주를 더 다니게됐다. 다른곳에 안붙으면 다녀야지 뭐 어떻게하겠나...그리고 오피..
System Call 분석
·
Linux/start_analyse()
시스템 콜 번호 정의는 어디에 되어있는가?include/uapi/asm-generic/unistd.h 에 시스템 콜 번호가 저장되어있다. 만약, fork() 시스템콜이 몇번인지 확인하고자 한다면?#define __NR_clone 220__SYSCALL(__NR_clone, sys_clone)__SYSCALL은 _arm64##sym로 define 되어있다. 따라서 unistd.h는 이렇게 구성이 될 것이다.#define __NR_clone 220__arm64_sys_clone그러면 나중에 unistd.h만 include를 하면, __arm64_sys_clone() 함수를 사용할 수 있다는 뜻이다.시스템 콜의 실제 정의시스템 콜의 실제 정의는 SYSCALL_DEFINEx 매크로에 의해서 정의된다. SYSCA..
커널 기여: race condition 가능성 해결
·
Linux/start_contribute()
drivers/staging/rtl8723bs 드라이버쪽을 최근에 기웃기웃 보고있다.그러던 중race contition 해결 패치void expire_timeout_chk(struct adapter *padapter) { struct list_head *phead, *plist, *tmp; u8 updated = false; ..
커널 기여 근황
·
Linux/start_contribute()
처음 기여를 시작한 11월 말부터 현재까지 약 10개 가까이 되는(시리즈 포함) 패치를 보냈다.이중에서 현재,2개 승인8개 리뷰중3개 리젝인데, 생각보다 리뷰가 상당히 까다롭다.승인 패치[패치]https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-nonmm-unstable&id=f34e19c34e4e92338d2ceaab2b95dd7790d262dekernel/fork.c에 있던 주석 수정인데, 기존의 주석이 함수의 동작을 애매하게 표현했었다.따라서 함수의 동작과정(mm_release())를 분석하고 그에 맞게 주석을 수정했다.이건 별다른 리뷰 없이 승인 받았다. [패치]https://git.kernel.org/pub/scm/l..