오픈소스 contribute 기록 - notepad++
2022. 2. 22. 09:35
Develop
사실 해당 crash는 무려 2년전 부터 존재했다. 아니 2년전에야 내가 발견했다. Crash의 원인은 이렇다. UDL(User Defined Language)가 생성되면, 배열에 담기게 된다. 해당 배열의 크기는 30으로 고정되어 있다. 이때 생성될 때마다 다음 UDL이 들어갈 배열의 index 변수인 NBUserLang에 1을 더해준다. 이때 문제는 NBUserLang이 index의 역할을 하고 있기 때문에 UDL배열의 크기인 30보다 작아야만 한다. 하지만 1을 더할 때 해당 부분에 대한 체크가 없었다. 따라서 UDL을 30개 이상 생성하게 되면 NBUserLang은 30이되고, UDL배열의 30번째 인덱스를 접근하게 되면서 crash가 발생한다. 해당 현상을 발견하고, HackerOne에 제보했으..