page 83, end of first full paragraph of section 5.1 should read "Then, when that disk is inserted"
page 95, Figure 6-1 should read "pass[16]" on both the Normal and Compromised Stack
page 97, grey box, line 3: "can used" -> "can be used"
page 98, The body of the safe_gets() function should have the following lines at the beginning of the function to prevent a buffer overflow:
if ((input == NULL) || (max_chars < 1)))
return;
if (max_chars == 1) {
input[0] = 0;
return;
}
page 147, the test box on salting assumes that the number of users is much larger than 2^k. The number of guesses required by the attacker is n * min (v, 2^k) where v is the number of distinct salts that appear in the password file (as opposed to the number of users).
page 150, The source code for the Credentials object is not listed in Appendix B, but is available in the source code package available on this web site.
Thanks to Thomas Duebendorfer and Vivek Rau for finding bugs!
Learn what it takes to build secure systems by taking these courses! Pre-recorded lectures include slides and audio streaming -- take courses at your own pace!