[Libguestfs] [PATCH] Fix error message in string-e command (RHBZ#588651).

Richard W.M. Jones rjones at redhat.com
Wed May 12 15:57:02 UTC 2010


-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/
-------------- next part --------------
>From d1ec7ad66e3a09cfc76a704a5df0fb6eee301bf4 Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones at redhat.com>
Date: Wed, 12 May 2010 16:55:59 +0100
Subject: [PATCH] Fix error message in string-e command (RHBZ#588651).

---
 daemon/strings.c |    6 ++++++
 src/generator.ml |   37 +++++++++++++++++++++++++++++++++----
 2 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/daemon/strings.c b/daemon/strings.c
index 1ba0241..f08401b 100644
--- a/daemon/strings.c
+++ b/daemon/strings.c
@@ -34,6 +34,12 @@ do_strings_e (const char *encoding, const char *path)
   char *out, *err;
   char **lines;
 
+  if (strlen (encoding) != 1 ||
+      strchr ("sSblBL", encoding[0]) == NULL) {
+    reply_with_error ("%s: invalid encoding", encoding);
+    return NULL;
+  }
+
   CHROOT_IN;
   fd = open (path, O_RDONLY);
   CHROOT_OUT;
diff --git a/src/generator.ml b/src/generator.ml
index 88d5be4..fbf84c0 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -2463,12 +2463,41 @@ the list of printable strings found.");
    "print the printable strings in a file",
    "\
 This is like the C<guestfs_strings> command, but allows you to
-specify the encoding.
+specify the encoding of strings that are looked for in
+the source file C<path>.
 
-See the L<strings(1)> manpage for the full list of encodings.
+Allowed encodings are:
 
-Commonly useful encodings are C<l> (lower case L) which will
-show strings inside Windows/x86 files.
+=over 4
+
+=item s
+
+Single 7-bit-byte characters like ASCII and the ASCII-compatible
+parts of ISO-8859-X (this is what C<guestfs_strings> uses).
+
+=item S
+
+Single 8-bit-byte characters.
+
+=item b
+
+16-bit big endian strings such as those encoded in
+UTF-16BE or UCS-2BE.
+
+=item l (lower case letter L)
+
+16-bit little endian such as UTF-16LE and UCS-2LE.
+This is useful for examining binaries in Windows guests.
+
+=item B
+
+32-bit big endian such as UCS-4BE.
+
+=item L
+
+32-bit little endian such as UCS-4LE.
+
+=back
 
 The returned strings are transcoded to UTF-8.");
 
-- 
1.6.6.1



More information about the Libguestfs mailing list