From patchwork Tue May 18 05:31:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1480003 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Fkm4q3JChz9sW1 for ; Tue, 18 May 2021 16:17:31 +1000 (AEST) Received: from localhost ([::1]:38850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit2n-0007oq-GK for incoming@patchwork.ozlabs.org; Tue, 18 May 2021 02:17:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKs-0007rv-O9 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:35477) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007AW-3C for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N4eOd-1lIrRE3dxP-011mCv; Tue, 18 May 2021 07:31:56 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 44/59] linux-user/s390x: Fix frame_addr corruption in setup_frame Date: Tue, 18 May 2021 07:31:16 +0200 Message-Id: <20210518053131.87212-45-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:SZ7kuAOZ0C6B91UsjZ4NYREWa4kcI9+Qh+fUMvnTFnFh1Qgvhfh LRJpoFdflRaNVwO22o50ZCKPgDLrjlkYGYgU8KlQDTboqYVNaRKBnz+ecwY5Sryu5dFxxrx ruUKXmGnMDXtT3xPDtj44lz4QjABz/xfIP+9FkH6/meSWGBvnn3jsWmBSLsJ3Pph2R1RudY iHFT4ypIXxmtmHpVJoBRA== X-UI-Out-Filterresults: notjunk:1;V03:K0:EgUM2E7ZBaQ=:CbPm2d6+KlnQOnQXdK/XnT /BxNIlpkYwLP5kYRAhFBq+tmIl8ayigwgeakoF6bKJAJWq2rPWbRfj98pMXxr5ngY+2iSx6IS ljcKzNde2UhSCLdPLkoqsO2rZPbonbxpBw1zV7CqTaSa3nPatU4I3TsYlkmq+v+YT+i2aQ2ZE w6JevCbUv4fLUVCJ9F5F1ai/PA6fx4be+xb3kIYtwxkP3f0KV2fjzEAjhV23KPrBIxqzWpe8Q BSpUBmOi8sq/pqTwL3Y1Mzv2hPSEU5Ey518hmgHioKV3CvvHsjc7wgLxgqG3xPefbFs7zd3WQ rxnLzx+Q5RSTIwsDvCwkx8oTCDYGOmpxySlOODBvx0zYyFeU/VQzNJhbjHqn/ATa8odt0LXrc oQtgSzW+Cb6PS7sbaphBdTF/320J46LWbtv7bLfQzHMJDSfN7Il40d4NRp3TnLEYHuoH7TVoG rN6Z0fLOTRVOSsnCeYABrsUj1M58psqCR23qBeA+GwiaV7xvuhWj9aIgNWztTox9g+lUTgkYg FIj9E9P2/7kSHmgonByZG0= Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson The original value of frame_addr is still required for its use in the call to unlock_user_struct below. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-13-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index bc41b01c5deb..81ba59b46af5 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -168,7 +168,7 @@ void setup_frame(int sig, struct target_sigaction *ka, env->psw.addr = ka->_sa_handler; env->regs[2] = sig; - env->regs[3] = frame_addr += offsetof(typeof(*frame), sc); + env->regs[3] = frame_addr + offsetof(typeof(*frame), sc); /* * We forgot to include these in the sigcontext.