git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Docs: line folding in example.
[libguestfs.git]
/
daemon
/
mount.c
diff --git
a/daemon/mount.c
b/daemon/mount.c
index
d1b26fa
..
49a0eab
100644
(file)
--- a/
daemon/mount.c
+++ b/
daemon/mount.c
@@
-48,7
+48,9
@@
do_mount_vfs (const char *options, const char *vfstype,
char *mp;
char *error;
char *mp;
char *error;
- is_root = strcmp (mountpoint, "/") == 0;
+ ABS_PATH (mountpoint, return -1);
+
+ is_root = STREQ (mountpoint, "/");
if (!root_mounted && !is_root) {
reply_with_error ("mount: you must mount something on / first");
if (!root_mounted && !is_root) {
reply_with_error ("mount: you must mount something on / first");
@@
-107,15
+109,20
@@
do_umount (const char *pathordevice)
{
int r;
char *err;
{
int r;
char *err;
+ char *buf;
+ int is_dev;
- char *buf = (strncmp (pathordevice, "/dev/", 5) == 0
-
? strdup (pathordevice)
- : sysroot_path (pathordevice)
)
;
+ is_dev = STREQLEN (pathordevice, "/dev/", 5);
+
buf = is_dev
? strdup (pathordevice)
+ : sysroot_path (pathordevice);
if (buf == NULL) {
reply_with_perror ("malloc");
return -1;
}
if (buf == NULL) {
reply_with_perror ("malloc");
return -1;
}
+ if (is_dev)
+ RESOLVE_DEVICE (buf, { free (buf); return -1; });
+
r = command (NULL, &err, "umount", buf, NULL);
free (buf);
r = command (NULL, &err, "umount", buf, NULL);
free (buf);