[Libguestfs] [PATCH v4 1/2] inspector: recognize ppc64 and ppc64le archs (RHBZ#1211996)

Pino Toscano ptoscano at redhat.com
Thu May 21 10:28:22 UTC 2015


On Tuesday 19 May 2015 20:23:37 Maros Zatko wrote:
> ---
>  src/filearch.c | 24 +++++++++++++++---------
>  1 file changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/src/filearch.c b/src/filearch.c
> index 8fb1acf..ce9d0a1 100644
> --- a/src/filearch.c
> +++ b/src/filearch.c
> @@ -59,14 +59,14 @@ cleanup_magic_t_free (void *ptr)
>  # endif
>  
>  COMPILE_REGEXP (re_file_elf,
> -                "ELF.*(?:executable|shared object|relocatable), (.+?),", 0)
> -COMPILE_REGEXP (re_elf_ppc64, "64.*PowerPC", 0)
> +                "ELF.*(MSB|LSB).*(?:executable|shared object|relocatable), (.+?),", 0)
> +COMPILE_REGEXP (re_elf_ppc64, ".*64.*PowerPC", 0)
>  
>  /* Convert output from 'file' command on ELF files to the canonical
>   * architecture string.  Caller must free the result.
>   */
>  static char *
> -canonical_elf_arch (guestfs_h *g, const char *elf_arch)
> +canonical_elf_arch (guestfs_h *g, const char *endianness, const char *elf_arch)
>  {
>    const char *r;
>    char *ret;
> @@ -85,8 +85,12 @@ canonical_elf_arch (guestfs_h *g, const char *elf_arch)
>      r = "sparc64";
>    else if (strstr (elf_arch, "IA-64"))
>      r = "ia64";
> -  else if (match (g, elf_arch, re_elf_ppc64))
> -    r = "ppc64";
> +  else if (match (g, elf_arch, re_elf_ppc64)) {
> +    if (strstr (endianness, "MSB"))
> +      r = "ppc64";
> +    else if (strstr (endianness, "LSB"))
> +      r = "ppc64le";

Can you please add an else branch signalling with error() the unknown
endianness string and returning NULL? Just a small safe guard.

-- 
Pino Toscano




More information about the Libguestfs mailing list