X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=daemon%2Fdaemon.h;h=4c1b9b05088ae2b456e89602ce738a1fa91b2f8a;hb=refs%2Ftags%2F1.5.4;hp=d90b65cd7fac3d25a8d18127e23ce1061c0c6a19;hpb=aee7d55fcf754d97d945c318ec06d6387ade067b;p=libguestfs.git diff --git a/daemon/daemon.h b/daemon/daemon.h index d90b65c..4c1b9b0 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -37,6 +37,8 @@ extern int sysroot_len; extern char *sysroot_path (const char *path); +extern int is_root_device (const char *device); + extern int xwrite (int sock, const void *buf, size_t len) __attribute__((__warn_unused_result__)); extern int xread (int sock, void *buf, size_t len) @@ -48,6 +50,8 @@ extern void sort_strings (char **argv, int len); extern void free_strings (char **argv); extern void free_stringslen (char **argv, int len); +extern int is_power_of_2 (unsigned long v); + #define command(out,err,name,...) commandf((out),(err),0,(name),__VA_ARGS__) #define commandr(out,err,name,...) commandrf((out),(err),0,(name),__VA_ARGS__) #define commandv(out,err,argv) commandvf((out),(err),0,(argv)) @@ -196,6 +200,8 @@ extern void reply (xdrproc_t xdrp, char *ret); reply_with_error ("%s: %s: expecting a device name", __func__, (path)); \ fail_stmt; \ } \ + if (is_root_device (path)) \ + reply_with_error ("%s: %s: device not found", __func__, path); \ if (device_name_translation ((path)) == -1) { \ int err = errno; \ int r = cancel_stmt; \