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:
7c2e6fd
)
Make CHROOT_IN/OUT macros should loudly if the syscall fails.
author
Richard Jones
<rjones@trick.home.annexia.org>
Mon, 22 Jun 2009 11:40:57 +0000
(12:40 +0100)
committer
Richard Jones
<rjones@trick.home.annexia.org>
Mon, 22 Jun 2009 11:40:57 +0000
(12:40 +0100)
daemon/daemon.h
patch
|
blob
|
history
diff --git
a/daemon/daemon.h
b/daemon/daemon.h
index
115db09
..
70f0bee
100644
(file)
--- a/
daemon/daemon.h
+++ b/
daemon/daemon.h
@@
-162,11
+162,22
@@
extern void reply (xdrproc_t xdrp, char *ret);
* (2) You must not change directory! cwd must always be "/", otherwise
* we can't escape our own chroot.
* (3) All paths specified must be absolute.
* (2) You must not change directory! cwd must always be "/", otherwise
* we can't escape our own chroot.
* (3) All paths specified must be absolute.
- * (4)
CHROOT_OUT does not affect
errno.
+ * (4)
Neither macro affects
errno.
*/
*/
-#define CHROOT_IN chroot ("/sysroot");
-#define CHROOT_OUT \
- do { int old_errno = errno; chroot ("."); errno = old_errno; } while (0)
+#define CHROOT_IN \
+ do { \
+ int __old_errno = errno; \
+ if (chroot ("/sysroot") == -1) \
+ perror ("CHROOT_IN: sysroot"); \
+ errno = __old_errno; \
+ } while (0)
+#define CHROOT_OUT \
+ do { \
+ int __old_errno = errno; \
+ if (chroot (".") == -1) \
+ perror ("CHROOT_OUT: ."); \
+ errno = __old_errno; \
+ } while (0)
/* Marks functions which are not implemented.
* NB. Cannot be used for FileIn functions.
/* Marks functions which are not implemented.
* NB. Cannot be used for FileIn functions.