diff options
Diffstat (limited to 'trunk/src/verify.c')
-rw-r--r-- | trunk/src/verify.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/trunk/src/verify.c b/trunk/src/verify.c index 8acecfb..8a3d89a 100644 --- a/trunk/src/verify.c +++ b/trunk/src/verify.c @@ -409,6 +409,9 @@ prelink_verify (const char *filename) if (handle_verify (fdundone, filename)) goto failure; + fsync (fd); + fsync (fdorig); + fsync (fdundone); close (fd); close (fdorig); close (fdundone); @@ -418,11 +421,20 @@ failure_unlink: unlink (ent->filename); failure: if (fd != -1) - close (fd); + { + fsync (fd); + close (fd); + } if (fdorig != -1) - close (fdorig); + { + fsync (fdorig); + close (fdorig); + } if (fdundone != -1) - close (fdundone); + { + fsync (fdundone); + close (fdundone); + } if (dso) close_dso (dso); if (dso2) @@ -437,6 +449,7 @@ not_prelinked: error (EXIT_FAILURE, errno, "Couldn't open %s", filename); if (handle_verify (fd, filename)) return EXIT_FAILURE; + fsync (fd); close (fd); return 0; } |