[$] The trouble with struct sockaddr's fake flexible array
Flexible arrays - arrays that are declared as the final member of astructure and which have a size determined at run time - have long drawnthe attention of developers seeking to harden the kernel againstbuffer-overflow vulnerabilities. These arrays have reliably been a sourceof bugs, so anything that can be done to ensure that operations on themstay within bounds is a welcome improvement. While many improvements,including the recent counted-by work, havebeen made, one of the most difficult cases remains. Now, however,developers who are interested in using recent compiler bounds-checkingfeatures are trying to get a handle on struct sockaddr.