git.annexia.org
/
libguestfs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
690ff69
)
lib: Try harder to remove temporary directory along error paths (RHBZ#769680).
author
Richard W.M. Jones
<rjones@redhat.com>
Fri, 23 Dec 2011 10:37:04 +0000
(10:37 +0000)
committer
Richard W.M. Jones
<rjones@redhat.com>
Fri, 23 Dec 2011 10:37:04 +0000
(10:37 +0000)
src/appliance.c
patch
|
blob
|
history
diff --git
a/src/appliance.c
b/src/appliance.c
index
5f77a56
..
57ff38f
100644
(file)
--- a/
src/appliance.c
+++ b/
src/appliance.c
@@
-450,8
+450,10
@@
build_supermin_appliance (guestfs_h *g,
guestfs___print_timestamped_message (g, "run febootstrap-supermin-helper");
int r = run_supermin_helper (g, supermin_path, tmpcd, len);
guestfs___print_timestamped_message (g, "run febootstrap-supermin-helper");
int r = run_supermin_helper (g, supermin_path, tmpcd, len);
- if (r == -1)
+ if (r == -1) {
+ guestfs___remove_tmpdir (tmpcd);
return -1;
return -1;
+ }
if (g->verbose)
guestfs___print_timestamped_message (g, "finished building supermin appliance");
if (g->verbose)
guestfs___print_timestamped_message (g, "finished building supermin appliance");
@@
-468,6
+470,7
@@
build_supermin_appliance (guestfs_h *g,
int fd = open (filename, O_WRONLY|O_CREAT, 0755);
if (fd == -1) {
perrorf (g, "open: %s", filename);
int fd = open (filename, O_WRONLY|O_CREAT, 0755);
if (fd == -1) {
perrorf (g, "open: %s", filename);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
struct flock fl;
return -1;
}
struct flock fl;
@@
-481,6
+484,7
@@
build_supermin_appliance (guestfs_h *g,
goto again;
perrorf (g, "fcntl: F_SETLKW: %s", filename);
close (fd);
goto again;
perrorf (g, "fcntl: F_SETLKW: %s", filename);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
return -1;
}
@@
-492,6
+496,7
@@
build_supermin_appliance (guestfs_h *g,
if (ftruncate (fd, clen) == -1) {
perrorf (g, "ftruncate: %s", filename);
close (fd);
if (ftruncate (fd, clen) == -1) {
perrorf (g, "ftruncate: %s", filename);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
return -1;
}
@@
-499,11
+504,13
@@
build_supermin_appliance (guestfs_h *g,
if (rr == -1) {
perrorf (g, "write: %s", filename);
close (fd);
if (rr == -1) {
perrorf (g, "write: %s", filename);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
if ((size_t) rr != clen) {
error (g, "partial write: %s", filename);
close (fd);
return -1;
}
if ((size_t) rr != clen) {
error (g, "partial write: %s", filename);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
return -1;
}
@@
-513,6
+520,7
@@
build_supermin_appliance (guestfs_h *g,
if (rename (filename, filename2) == -1) {
perrorf (g, "rename: %s %s", filename, filename2);
close (fd);
if (rename (filename, filename2) == -1) {
perrorf (g, "rename: %s %s", filename, filename2);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
return -1;
}
@@
-522,6
+530,7
@@
build_supermin_appliance (guestfs_h *g,
if (rename (filename, filename2) == -1) {
perrorf (g, "rename: %s %s", filename, filename2);
close (fd);
if (rename (filename, filename2) == -1) {
perrorf (g, "rename: %s %s", filename, filename2);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
return -1;
}
@@
-531,6
+540,7
@@
build_supermin_appliance (guestfs_h *g,
if (rename (filename, filename2) == -1) {
perrorf (g, "rename: %s %s", filename, filename2);
close (fd);
if (rename (filename, filename2) == -1) {
perrorf (g, "rename: %s %s", filename, filename2);
close (fd);
+ guestfs___remove_tmpdir (tmpcd);
return -1;
}
return -1;
}