mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
CHROOT_OUT must preserve errno.
This commit is contained in:
@@ -19,12 +19,14 @@
|
||||
#ifndef GUESTFSD_DAEMON_H
|
||||
#define GUESTFSD_DAEMON_H
|
||||
|
||||
#include "../src/guestfs_protocol.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <rpc/types.h>
|
||||
#include <rpc/xdr.h>
|
||||
|
||||
#include "../src/guestfs_protocol.h"
|
||||
|
||||
/* in guestfsd.c */
|
||||
extern void xwrite (int sock, const void *buf, size_t len);
|
||||
extern void xread (int sock, void *buf, size_t len);
|
||||
@@ -78,8 +80,10 @@ 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.
|
||||
* (4) CHROOT_OUT does not affect errno.
|
||||
*/
|
||||
#define CHROOT_IN chroot ("/sysroot");
|
||||
#define CHROOT_OUT chroot (".");
|
||||
#define CHROOT_OUT \
|
||||
do { int old_errno = errno; chroot ("."); errno = old_errno; } while (0)
|
||||
|
||||
#endif /* GUESTFSD_DAEMON_H */
|
||||
|
||||
Reference in New Issue
Block a user