1.Question 1
A program indexes a buffer after a pointer to that buffer has been used as a parameter to thefree() function. This is
Correct behavior
A violation of spatial memory safety
*A violation of temporal memory safety
An information flow violation
2.Question 2
When could an integer overflow impact memory safety?
*If the integer was used to perform pointer arithmetic
If the integer was passed as a parameter to open()
*If the integer is passed as an argument to strncat()
If the integer is used as the denominator in a division expression
Integer overflows never impact memory safety
3.Question 3
Which of the following are true about a language that uses garbage collection or some other automatic means (e.g., reference counting) for memory management? (Select all that apply.)
*The use of automatic memory management will provide a safety benefit, but typically at the cost of some performance
The language will not have type safety violations
The language will not have spatial memory safety violations
*The language will not have temporal memory safety violations
4.Question 4
Consider the following code:
char *foo(char *buf) {
char *x = buf+strlen(buf);
char *y = buf;
while (y != x) {
if (*y == 'a')break;
y++;
}
return y;
}
void