From: Richard Jones Date: Wed, 12 May 2010 15:55:59 +0000 (+0100) Subject: Fix error message in string-e command (RHBZ#588651). X-Git-Tag: 1.3.12~8 X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=commitdiff_plain;h=287f8957fea3efe411c7ac55595d5d6c7b613e4e;ds=sidebyside Fix error message in string-e command (RHBZ#588651). --- 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 37ff0d4..a995b4c 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 command, but allows you to -specify the encoding. +specify the encoding of strings that are looked for in +the source file C. -See the L manpage for the full list of encodings. +Allowed encodings are: -Commonly useful encodings are C (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 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.");