Door Anoniem
Er is bijvoorbeeld gekozen voor Microsoft's ISO/IEC TR
24731, die
voornamelijk voor Microsoft besturingssystemen wordt
gebruikt, terwijl
strlcat/strlcpy al de facto standaarden zijn voor Unix
besturingssystemen en
verder onbesproken blijven.
Dat ze de safe functies genoemd worden is niet zo vreemd
want dat is een ISO standaard (dat Microsoft het heeft
bedacht is minder relevant lijkt me). strlcpy is dat niet en
de implementatie varieert bovendien bij verschillende UNIX
varianten. Een belangrijk verschil is ook dat de safe
functies expliciet geen NULL pointers accepteren en ook geen
copy uitvoeren als de bestemming kleiner is dan de bron. De
strlcpy functie kopieert zo veel als mogelijk is.
Door Anoniem
sizeof(ntbs) is niet het aantal elementen maar de lengte van
alle
elementen. Toevallig is het aantal elementen hier gelijk aan
de totale
lengte. Voor een universeel voorbeeld moet de lengte van het
type mee
worden genomen.
Inderdaad, ze geven zelf het slechte voorbeeld. Er zou
moeten staan: sizeof(ntbs) / sizeof(char)
Ik moet ook zeggen dat veel van de genoemde issues niet echt
issues zijn omdat ik het eerder programmeerfouten zou noemen
dan potentiële security risks (zoals fout gebruik van
macro's). De issues die wel echt security risks zijn, zijn
wel redelijk bekende issues inmiddels. Ik ben niet echt wat
nieuws tegengekomen, maar toch wel goed dat men bekende
problemen eens goed documenteert (ook al zijn ze soms wat
ver gezocht).