1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
/*@null@*/ int *x;
void f1 (void)
{
int *y = x;
if (3 > 4)
{
;
}
else
{
x = NULL;
if (y != NULL) free (y);
}
/* y is unusable...but no error yet */
}
void f2 (void)
{
int *y = x;
if (3 > 4)
{
;
}
else
{
x = NULL;
if (y != NULL) free (y);
}
*y = 23; /* 1. Variable y used in inconsistent state */
} /* 2. Dereference of possibly null pointer y: *y */
void f3 (void)
{
int *y = x;
if (3 > 4)
{
;
}
else
{
x = NULL;
if (y != NULL) free (y);
}
y = x;
*y = 23; /* 3. Dereference of possibly null pointer y: *y */
}
|