[Libguestfs] [PATCH] inspect: fix inspection of partition-less devices (RHBZ#1661038)

Pino Toscano ptoscano at redhat.com
Mon Jan 14 16:29:41 UTC 2019


When parsing "xdev"-kind devices, do not assume that the partition
number can be converted to integer: re_xdev accepts an empty part of the
partition number, so just handle as it is, as string.

This fixes a regression due to the conversion of the inspection code to
OCaml, as the old C version did not have this issue.
---
 daemon/inspect_fs_unix_fstab.ml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/daemon/inspect_fs_unix_fstab.ml b/daemon/inspect_fs_unix_fstab.ml
index 9f9478144..02956ae94 100644
--- a/daemon/inspect_fs_unix_fstab.ml
+++ b/daemon/inspect_fs_unix_fstab.ml
@@ -350,7 +350,7 @@ and resolve_fstab_device spec md_map os_type =
     debug_matching "xdev";
     let typ = PCRE.sub 1
     and disk = PCRE.sub 2
-    and part = int_of_string (PCRE.sub 3) in
+    and part = PCRE.sub 3 in
     resolve_xdev typ disk part default
   )
 
@@ -467,7 +467,7 @@ and resolve_fstab_device spec md_map os_type =
     debug_matching "Hurd";
     let typ = PCRE.sub 1
     and disk = int_of_string (PCRE.sub 2)
-    and part = int_of_string (PCRE.sub 3) in
+    and part = PCRE.sub 3 in
 
     (* Hurd disk devices are like /dev/hdNsM, where hdN is the
      * N-th disk and M is the M-th partition on that disk.
@@ -504,7 +504,7 @@ and resolve_xdev typ disk part default =
   let i = drive_index disk in
   if i >= 0 && i < Array.length devices then (
     let dev = Array.get devices i in
-    let dev = dev ^ string_of_int part in
+    let dev = dev ^ part in
     if is_partition dev then
       Mountable.of_device dev
     else
-- 
2.20.1




More information about the Libguestfs mailing list