Pino Toscano
2015-Nov-09 17:36 UTC
[Libguestfs] [PATCH 1/2] customize: check for file existence with --edit (RHBZ#1275806)
Check that a path provided to --edit exists already; while the is_file
call later will fail for non-existing files, with an explicit check a
better error message can be provided.
---
customize/customize_run.ml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/customize/customize_run.ml b/customize/customize_run.ml
index ff7bd0d..054ee53 100644
--- a/customize/customize_run.ml
+++ b/customize/customize_run.ml
@@ -198,6 +198,9 @@ exec >>%s 2>&1
| `Edit (path, expr) ->
message (f_"Editing: %s") path;
+ if not (g#exists path) then
+ error (f_"%s does not exist in the guest") path;
+
if not (g#is_file path) then
error (f_"%s is not a regular file in the guest") path;
--
2.1.0
Pino Toscano
2015-Nov-09 17:36 UTC
[Libguestfs] [PATCH 2/2] customize: allow editing symlinked files
Resolve also symlinks when checking whether a path passed to --edit is a
file: the file editing code supports symlinks anyway (properly changes
the target file, instead of overwrite the symlink with a real file), so
it is safe to allow this operation in customize/builder.
---
customize/customize_run.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/customize/customize_run.ml b/customize/customize_run.ml
index 054ee53..ed3c818 100644
--- a/customize/customize_run.ml
+++ b/customize/customize_run.ml
@@ -201,7 +201,7 @@ exec >>%s 2>&1
if not (g#exists path) then
error (f_"%s does not exist in the guest") path;
- if not (g#is_file path) then
+ if not (g#is_file ~followsymlinks:true path) then
error (f_"%s is not a regular file in the guest") path;
Perl_edit.edit_file g#ocaml_handle path expr
--
2.1.0
Richard W.M. Jones
2015-Nov-09 21:06 UTC
Re: [Libguestfs] [PATCH 2/2] customize: allow editing symlinked files
On Mon, Nov 09, 2015 at 06:36:16PM +0100, Pino Toscano wrote:> Resolve also symlinks when checking whether a path passed to --edit is a > file: the file editing code supports symlinks anyway (properly changes > the target file, instead of overwrite the symlink with a real file), so > it is safe to allow this operation in customize/builder. > --- > customize/customize_run.ml | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/customize/customize_run.ml b/customize/customize_run.ml > index 054ee53..ed3c818 100644 > --- a/customize/customize_run.ml > +++ b/customize/customize_run.ml > @@ -201,7 +201,7 @@ exec >>%s 2>&1 > if not (g#exists path) then > error (f_"%s does not exist in the guest") path; > > - if not (g#is_file path) then > + if not (g#is_file ~followsymlinks:true path) then > error (f_"%s is not a regular file in the guest") path; > > Perl_edit.edit_file g#ocaml_handle path expr > -- > 2.1.0ACK series. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
Possibly Parallel Threads
- [PATCH 2/2] customize: allow editing symlinked files
- [PATCH] customize: Add support for the APK (Alpine Linux) package manager.
- [PATCH 0/4] firstboot: assorted enhancements
- [PATCH] customize: add --truncate-recursive option
- [PATCH] customize: Move virt-customize-related code to a separate