- 1. Argument passing
- No checking for page boundaries in argument passing -10
- Uses memcpy/bcopy/memmove or file reading/writing for +5
- copying up to/starting from page boundaries -- good job!
- (Search for memcpy/bcopy, not just extern, make sure they call it
- with the possibility of copying more than 4 bytes at a time. ALSO if
- they do File Read/Writes then that is not byte-by-byte but they will
- fail page crossing only take off for failing the pagecrossing test.)
- Don't decomp / reuse translation code -5
- Using strtok instead of strtok_r or strsep -1
- (strtok is not thread-safe)
+Overall:
+ -1 Gratuitous use of malloc() (e.g. for allocating a list or a lock)
+ -1 Inappropriate use of ASSERT (e.g. to verify that malloc() succeeded)