Revert of the `copyVideoFrameBuffer` odd-width OOB fix
Component: WebCore WebRTC | 7072dd3
copyVideoFrameBuffer는 WebKit WebRTC video pipeline에서 planar YUV frame buffer(I420/I010)를 복사하는 함수입니다. 두 포맷 모두 4:2:0 chroma subsampling을 사용하기 때문에, chroma plane의 너비와 높이는 luma의 절반으로 계산됩니다. 문제는 너비가 홀수인 frame입니다. 이 경우 plane의 stride와 크기를 구할 때 반올림 처리가 정확해야 하며, 계산이 어긋나면 destination buffer 끝을 넘어서 기록하게 됩니다.
이번 commit은 관련된 두 개의 변경을 되돌립니다. 하나는 해당 out-of-bounds write에 대한 원래 fix이고, 다른 하나는 그 fix가 유발한 ASan build 오류를 복구하려던 후속 commit입니다. 두 변경 모두 fix forward 방식으로 처리되지는 않았습니다.
Significance
홀수 너비 I420/I010 out-of-bounds write가 main에 다시 들어왔으며, 수정된 fix가 나오기 전까지는 그대로 남아 있는 상태입니다. 이번 호 appendix에 실린 두 항목, 즉 dfe0d84와 c18f11b는 해당 버그가 수정된 것으로 기술하고 있습니다. 다만 이번 revert 시점 기준으로는 수정된 상태가 아닙니다. 첫 번째 fix 시도가 ASan 빌드를 정상적으로 통과하지 못했다는 점도 따로 짚어 둘 만합니다. sanitizer build를 깨뜨리는 memory safety fix는, 정작 그 sanitizer로 검증할 수 없는 fix이기 때문입니다.