On 5 August 2016 at 12:19, Markus Armbruster <arm...@redhat.com> wrote: > Peter Maydell <peter.mayd...@linaro.org> writes: > >> The unlink() function doesn't accept a NULL pointer, so >> don't pass it one. Spotted by the clang sanitizer. >> >> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> >> --- >> tests/hd-geo-test.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/tests/hd-geo-test.c b/tests/hd-geo-test.c >> index 12ee392..6176e81 100644 >> --- a/tests/hd-geo-test.c >> +++ b/tests/hd-geo-test.c >> @@ -416,7 +416,9 @@ int main(int argc, char **argv) >> ret = g_test_run(); >> >> for (i = 0; i < backend_last; i++) { >> - unlink(img_file_name[i]); >> + if (img_file_name[i]) { >> + unlink(img_file_name[i]); >> + } >> } >> >> return ret; > > And what terrible, terrible things unlink()'s going to do when passed a > null pointer? Turns out the same scary terrible thing it has always > done: return -1 and set errno = EFAULT.
Feel free to send a bug report to the glibc folks saying they shouldn't have marked it as __nonnull((1)). thanks -- PMM