diff --git a/man/machinectl.xml b/man/machinectl.xml
index 94f2ba511c2..1adebf5da0c 100644
--- a/man/machinectl.xml
+++ b/man/machinectl.xml
@@ -439,7 +439,6 @@
specified, the connection is made to the local host
instead. This works similar to login but
immediately invokes a user process. This command runs the
- specified executable with the specified arguments, or
specified executable with the specified arguments, or the
default shell for the user if none is specified, or
/bin/sh if no default shell is found. By default,
diff --git a/man/systemctl.xml b/man/systemctl.xml
index 60882e5aa3b..375b91a9bb0 100644
--- a/man/systemctl.xml
+++ b/man/systemctl.xml
@@ -877,6 +877,10 @@ Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago
non-zero otherwise. Unless is
specified, this will also print the current unit state to
standard output.
+
+ Unlike status or show commands, this does not
+ load units. So, when a specified unit is an alias of another unit and is not loaded,
+ then this outputs "inactive", even if the aliased unit is active.
@@ -889,6 +893,10 @@ Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago
non-zero otherwise. Unless is
specified, this will also print the current unit state to
standard output.
+
+ Unlike status or show commands, this does not
+ load units. So, when a specified unit is an alias of another unit and is not loaded,
+ then this outputs "inactive", even if the aliased unit is failed.
@@ -987,6 +995,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
are always exposed as properties ending in the …USec suffix even if a matching
configuration options end in …Sec, because microseconds is the normalized time unit used
by the system and service manager.
+
+ As similar to status command, systemd implicitly loads units as necessary.
+ See also status command for the detail.
diff --git a/src/basic/virt.c b/src/basic/virt.c
index 9b6abf9f19d..f4796b53bc2 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -222,6 +222,8 @@ static int detect_vm_xen_dom0(void) {
if (r == 0) {
unsigned long features;
+ /* Here, we need to use sscanf() instead of safe_atoul()
+ * as the string lacks the leading "0x". */
r = sscanf(domcap, "%lx", &features);
if (r == 1) {
r = !!(features & (1U << XENFEAT_dom0));