diff options
| author | Richard Jones <rjones@redhat.com> | 2010-05-12 16:55:59 +0100 |
|---|---|---|
| committer | Richard Jones <rjones@redhat.com> | 2010-05-13 16:22:10 +0100 |
| commit | 287f8957fea3efe411c7ac55595d5d6c7b613e4e (patch) | |
| tree | ea138c96bde1fa5f05586ac17868d4a247ac584a | |
| parent | 1c6ed48bd3cd471dc6e4613ede9151631e19f55a (diff) | |
Fix error message in string-e command (RHBZ#588651).
| -rw-r--r-- | daemon/strings.c | 6 | ||||
| -rwxr-xr-x | src/generator.ml | 37 |
2 files changed, 39 insertions, 4 deletions
diff --git a/daemon/strings.c b/daemon/strings.c index 1ba02419..f08401b2 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 37ff0d41..a995b4c9 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."); |
