From patchwork Wed Apr 17 14:26:36 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 237237 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 333032C0085 for ; Thu, 18 Apr 2013 00:28:00 +1000 (EST) Received: from localhost ([::1]:60513 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USTL4-0006BZ-C8 for incoming@patchwork.ozlabs.org; Wed, 17 Apr 2013 10:27:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USTKL-0005p9-IW for qemu-devel@nongnu.org; Wed, 17 Apr 2013 10:27:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1USTKF-0005Mz-IL for qemu-devel@nongnu.org; Wed, 17 Apr 2013 10:27:13 -0400 Received: from mail-ea0-x233.google.com ([2a00:1450:4013:c01::233]:49687) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USTKF-0005Mj-D5 for qemu-devel@nongnu.org; Wed, 17 Apr 2013 10:27:07 -0400 Received: by mail-ea0-f179.google.com with SMTP id h14so10686eaj.10 for ; Wed, 17 Apr 2013 07:27:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references; bh=acmb2RyCyED3fvMoCYNBXZob/EhPd1GZFFeuipM9B+4=; b=k3jeeGb6cM80uWVGYfUXrvFUzXr9w2bWuMwIWzNcl04UMnEw3vaIcfEmfcMBJCiYjv bi4CFGwUIps4RHLbFQv7TMjNaIelMw+nH3M9mFlCAN6KUxCwCEvvjXWqBvVzNN/JRyye tzs5DvLqIop+ZcbqKqnpMZH/HCR7SEMDaPnJKj1ZqV4KOjTCzT2VOYMMuHJFf/AKIXx2 B0ksX0Oh6a6KZU2hHnsSpGMMSVdsl1am0Ym6nHovRJ2ClTs0DMH8+jmeJ9pd5LHaKSL3 rQ9U4C1ks0KXMWpAgIJ9l58qZWo4q9dfsk2R+Ag9tOBD/bAl/eXmFK1weYiqnwm70FQe 8tww== X-Received: by 10.14.182.72 with SMTP id n48mr19066241eem.3.1366208826687; Wed, 17 Apr 2013 07:27:06 -0700 (PDT) Received: from playground.lan (93-34-176-20.ip50.fastwebnet.it. [93.34.176.20]) by mx.google.com with ESMTPS id w51sm9373448eev.13.2013.04.17.07.27.04 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 17 Apr 2013 07:27:05 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Wed, 17 Apr 2013 16:26:36 +0200 Message-Id: <1366208807-4433-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1366208807-4433-1-git-send-email-pbonzini@redhat.com> References: <1366208807-4433-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4013:c01::233 Cc: peter.maydell@linaro.org, edgar.iglesias@gmail.com Subject: [Qemu-devel] [PATCH 02/13] elfload: fix size of ABI-dependent fields in core dumps X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Some fields in core dumps are 32-bit in 32-or-64 environments (ppc64abi32, sparc32plus). Use abi_long/ulong for those. Also, the fields of target_elf_siginfo are ints. Use tswap32 to convert them. Reviewed-by: Peter Maydell Signed-off-by: Paolo Bonzini --- linux-user/elfload.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 89db49c..d3589ff 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -2110,8 +2110,8 @@ struct target_elf_siginfo { struct target_elf_prstatus { struct target_elf_siginfo pr_info; /* Info associated with signal */ target_short pr_cursig; /* Current signal */ - target_ulong pr_sigpend; /* XXX */ - target_ulong pr_sighold; /* XXX */ + abi_ulong pr_sigpend; /* XXX */ + abi_ulong pr_sighold; /* XXX */ target_pid_t pr_pid; target_pid_t pr_ppid; target_pid_t pr_pgrp; @@ -2131,7 +2131,7 @@ struct target_elf_prpsinfo { char pr_sname; /* char for pr_state */ char pr_zomb; /* zombie */ char pr_nice; /* nice val */ - target_ulong pr_flag; /* flags */ + abi_ulong pr_flag; /* flags */ target_uid_t pr_uid; target_gid_t pr_gid; target_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; @@ -2215,12 +2215,12 @@ static int write_note_info(struct elf_note_info *, int); #ifdef BSWAP_NEEDED static void bswap_prstatus(struct target_elf_prstatus *prstatus) { - prstatus->pr_info.si_signo = tswapl(prstatus->pr_info.si_signo); - prstatus->pr_info.si_code = tswapl(prstatus->pr_info.si_code); - prstatus->pr_info.si_errno = tswapl(prstatus->pr_info.si_errno); + prstatus->pr_info.si_signo = tswap32(prstatus->pr_info.si_signo); + prstatus->pr_info.si_code = tswap32(prstatus->pr_info.si_code); + prstatus->pr_info.si_errno = tswap32(prstatus->pr_info.si_errno); prstatus->pr_cursig = tswap16(prstatus->pr_cursig); - prstatus->pr_sigpend = tswapl(prstatus->pr_sigpend); - prstatus->pr_sighold = tswapl(prstatus->pr_sighold); + prstatus->pr_sigpend = tswapal(prstatus->pr_sigpend); + prstatus->pr_sighold = tswapal(prstatus->pr_sighold); prstatus->pr_pid = tswap32(prstatus->pr_pid); prstatus->pr_ppid = tswap32(prstatus->pr_ppid); prstatus->pr_pgrp = tswap32(prstatus->pr_pgrp); @@ -2232,7 +2232,7 @@ static void bswap_prstatus(struct target_elf_prstatus *prstatus) static void bswap_psinfo(struct target_elf_prpsinfo *psinfo) { - psinfo->pr_flag = tswapl(psinfo->pr_flag); + psinfo->pr_flag = tswapal(psinfo->pr_flag); psinfo->pr_uid = tswap16(psinfo->pr_uid); psinfo->pr_gid = tswap16(psinfo->pr_gid); psinfo->pr_pid = tswap32(psinfo->pr_pid);