зеркало из https://github.com/mozilla/gecko-dev.git
34b3be419c
This also adds static checks that buffer overflows do not sneak in again in the future. Interestingly, this also makes (at least) GCC generate more efficient code. For example, before, writing to the buffer in WriteV5AuthRequest would look like this: mov 0x38(%rbx),%eax mov 0x28(%rbx),%rcx movb $0x5,(%rcx,%rax,1) mov 0x38(%rbx),%eax inc %eax mov %eax,0x38(%rbx) mov 0x28(%rbx),%rcx movb $0x1,(%rcx,%rax,1) mov 0x38(%rbx),%eax inc %eax mov %eax,0x38(%rbx) mov 0x28(%rbx),%rcx movb $0x0,(%rcx,%rax,1) incl 0x38(%rbx) Now it looks like this: mov 0x28(%rbx),%rax movb $0x5,(%rax) movb $0x1,0x1(%rax) movb $0x0,0x2(%rax) movl $0x3,0x38(%rbx) |
||
---|---|---|
.. | ||
moz.build | ||
nsISOCKSSocketInfo.idl | ||
nsISSLSocketControl.idl | ||
nsISocketProvider.idl | ||
nsISocketProviderService.idl | ||
nsITransportSecurityInfo.idl | ||
nsSOCKS4SocketProvider.h | ||
nsSOCKSIOLayer.cpp | ||
nsSOCKSIOLayer.h | ||
nsSOCKSSocketProvider.cpp | ||
nsSOCKSSocketProvider.h | ||
nsSocketProviderService.cpp | ||
nsSocketProviderService.h | ||
nsUDPSocketProvider.cpp | ||
nsUDPSocketProvider.h |