Bug 905322

Summary: "hivex-commit" should fail with a relative path
Product: Red Hat Enterprise Linux 7 Reporter: bfan
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: leiwang, lkong, wshi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: libguestfs-1.22.2-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 905341 980372 (view as bug list) Environment:
Last Closed: 2014-06-13 10:55:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 981683    
Bug Blocks:    

Description bfan 2013-01-29 07:26:08 UTC
Description of problem:
Command "hivex-commit" need a absolute path as its parameter, it's different with "hivex-open" which just need a relative path.

"/WINDOWS/system32/config/software" is exist, and that folder is writable. it's like hivex-commit didn't correctly follow the link, its path is not start from "/sysroot/"  


Version-Release number of selected component (if applicable):
><fs> version
major: 1
minor: 20
release: 1
extra: rhel=7,release=6.el7,libvirt


How reproducible:
100%


Steps to Reproduce:
1. launch libguestfs with a windows guest
[root#] guestfish -a Win2003-32-hvm.raw
><fs> run
><fs> mount /dev/sda1 /

2. open a registry hive file with write model
><fs> hivex-open /WINDOWS/system32/config/software write:true

3. commit changes to the hive file with relative path, it's failed
><fs> hivex-commit /WINDOWS/system32/config/software
libguestfs: error: hivex_commit: failed: No such file or directory

4. commit changes to the hive file with absolute path, it's passed
><fs> hivex-commit /sysroot/WINDOWS/system32/config/software


Actual results:
hivex-commit with relatived path failed


Expected results:
hivex-commit with relatived path can pass


Additional info:

Comment 2 Richard W.M. Jones 2013-01-29 10:38:13 UTC
Fixed upstream in:
https://github.com/libguestfs/libguestfs/commit/be4a3d77c42148731a977b68aab8b454372518d7

Comment 4 Lingfei Kong 2013-12-06 06:41:31 UTC
Can verified with libguestfs-1.20.1-4.el7
Steps to verify:
1. Install libguestfs-1.20.1-4.el7 & libguestfs-winsupport-7.0-2.el7
2. #guestfish -a Win2008r2-64-hvm.raw
><fs> run
 100% [#################################################################################] 00:00
><fs> mount /dev/sda1 /
><fs> hivex-open  /Windows/System32/config/SOFTWARE write:true
><fs> hivex-commit  /Windows/System32/config/SOFTWARE           
libguestfs: error: hivex_commit: failed: No such file or directory
><fs> hivex-commit  /sysroot/Windows/System32/config/SOFTWARE 

Can not commit with a relative path.


--------------------------------------
Verified with libguestfs-1.22.6-15.el7

Steps to verify:
1. Install libguestfs-1.22.6-15.el7 & libguestfs-winsupport-7.0-2.el7

#guestfish  -a Win2008r2-64-hvm.raw
><fs> run
><fs> mount /dev/sda1 /
><fs> hivex-open  /Windows/System32/config/SOFTWARE write:true
><fs> hivex-commit /Windows/System32/config/SOFTWARE

Can commit with a relative path. 

Additional information:
><fs> hivex-open  /sysroot//Windows/System32/config/SOFTWARE write:true
libguestfs: error: hivex_open: hivex failed to open /sysroot//Windows/System32/config/SOFTWARE: No such file or directory
><fs> hivex-open  /sysroot/Windows/System32/config/SOFTWARE write:true
libguestfs: error: hivex_open: hivex failed to open /sysroot/Windows/System32/config/SOFTWARE: No such file or directory

Comment 5 Ludek Smid 2014-06-13 10:55:20 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.