From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x231.google.com (mail-oi1-x231.google.com [IPv6:2607:f8b0:4864:20::231]) by sourceware.org (Postfix) with ESMTPS id 66D873858004 for ; Tue, 22 Nov 2022 13:47:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 66D873858004 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oi1-x231.google.com with SMTP id l127so15857009oia.8 for ; Tue, 22 Nov 2022 05:47:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7y+gyK9GrkJxTi0ZcqKEjfRtcTyCf0qAQggI/HLhP5c=; b=DI1jnhuKppVCAXwKlsocBKWjKDUk55sKoyVMkrMTCi/VqQVC9abvNkw9f1byQiWFTc hi68/NNsFOB59I1FsxT2z2qqet/2sPgIZLjnKMfClrPJ4JBtjmLdaNyMOMz38oz1/dHH RSXL8PVXthy3BvNOieKUuG7LzZbSL/wnZb3H0TLSm5vnVEM1DyadrABfSFOxNzJBQi90 HzG/pQ2HcPPK1AlUB8JHibCb2wDpyDVQ+WgCYg88FZNLpk3zN6IxaguLkWrViLNZFISZ J1jLsMBTLGh9volxPMiKufGOS+kW4eUtZJOem0CMfZcU1mYhWpJDOB8pc3DrRe9RoM0P J4Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=7y+gyK9GrkJxTi0ZcqKEjfRtcTyCf0qAQggI/HLhP5c=; b=JIdn8qR8IxysSj5bhBTA47+Fl+IdioAdZgYmSCuUNX7sMwBRMGyYUmgforKr6TfEMf 2uJiRrYZWn3yPw3e3/1WpR34r9vmY+f57htT2a2SBnSA5SmelsKcyxzTN2xF3mrzG5jc B1YJdBX6YpwJsMyerq6ulOmmVWuS2H35lwEimvJHjQOsPMfgkpOykhMXCVo5Pi+HD1MO qzzyl8QuU2uHsvRTCZtDwDBhcQsZVYWEMfhybzRaYF87/njdSCpGL61cVlgUerjjBvO9 LTyuYAXPegyEJ/aYmsAqeQW7BggKnFUziKnC+CJLGE1JXphwhVfpif9nKw+Xvigz64lv QHlg== X-Gm-Message-State: ANoB5plVG7H0HA1e96dAKGEP0ZLK3/NLwd13cndx7ozOwqL0Qr1c8IdH SLv9/OXmNmrQ46f+2MkHiG0dRc4Uv5IlkMFC X-Google-Smtp-Source: AA0mqf6eTJcItg6Clm7STVmLqdlVX4fq1VwPzPYGpXOez6NPEjlA/ILvu0oq65q85yN4KCKtkOLJ/w== X-Received: by 2002:a54:4883:0:b0:35a:7a88:d161 with SMTP id r3-20020a544883000000b0035a7a88d161mr1636427oic.255.1669124834288; Tue, 22 Nov 2022 05:47:14 -0800 (PST) Received: from mandiga.. ([2804:1b3:a7c1:84f3:ded9:82f6:f371:420b]) by smtp.gmail.com with ESMTPSA id bd32-20020a056870d7a000b0013d6d924995sm7496871oab.19.2022.11.22.05.47.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Nov 2022 05:47:13 -0800 (PST) From: Adhemerval Zanella To: libc-stable@sourceware.org Cc: Vladislav Khmelevsky Subject: [COMMITTED 2.34, 2.35, 2.36] elf: Fix rtld-audit trampoline for aarch64 Date: Tue, 22 Nov 2022 10:47:08 -0300 Message-Id: <20221122134708.359834-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: Vladislav Khmelevsky This patch fixes two problems with audit: 1. The DL_OFFSET_RV_VPCS offset was mixed up with DL_OFFSET_RG_VPCS, resulting in x2 register value nulling in RG structure. 2. We need to preserve the x8 register before function call, but don't have to save it's new value and restore it before return. Anyway the final restore was using OFFSET_RV instead of OFFSET_RG value which is wrong (althoug doesn't affect anything). Reviewed-by: Adhemerval Zanella (cherry picked from commit eb4181e9f4a512de37dad4ba623c921671584dea) --- sysdeps/aarch64/dl-trampoline.S | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S index 909b208578..d66f0b9c45 100644 --- a/sysdeps/aarch64/dl-trampoline.S +++ b/sysdeps/aarch64/dl-trampoline.S @@ -298,12 +298,11 @@ _dl_runtime_profile: stp x2, x3, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*1] stp x4, x5, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*2] stp x6, x7, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*3] - str x8, [x29, #OFFSET_RG + DL_OFFSET_RG_X0 + 16*4] stp q0, q1, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*0] stp q2, q3, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*1] stp q4, q5, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*2] stp q6, q7, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*3] - str xzr, [X29, #OFFSET_RV + DL_OFFSET_RG_VPCS] + str xzr, [X29, #OFFSET_RV + DL_OFFSET_RV_VPCS] /* Setup call to pltexit */ ldp x0, x1, [x29, #OFFSET_SAVED_CALL_X0] @@ -315,7 +314,6 @@ _dl_runtime_profile: ldp x2, x3, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*1] ldp x4, x5, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*2] ldp x6, x7, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*3] - ldr x8, [x29, #OFFSET_RV + DL_OFFSET_RV_X0 + 16*4] ldp q0, q1, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*0] ldp q2, q3, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*1] ldp q4, q5, [x29, #OFFSET_RV + DL_OFFSET_RV_V0 + 32*2] -- 2.34.1