From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753976AbdGUO77 (ORCPT ); Fri, 21 Jul 2017 10:59:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:45076 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751504AbdGUO6U (ORCPT ); Fri, 21 Jul 2017 10:58:20 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 164D922B4D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=mhiramat@kernel.org From: Masami Hiramatsu To: Jon Medhurst , Russell King Cc: linux-arm-kernel@lists.infradead.org, Wang Nan , Linus Torvalds , Ananth N Mavinakayanahalli , Anil S Keshavamurthy , Masami Hiramatsu , LKML Subject: [PATCH] arm: mark kprobe templates as arrays, not single elements. Date: Fri, 21 Jul 2017 23:57:31 +0900 Message-Id: <150064904147.7445.9734335187475096313.stgit@devbox> X-Mailer: git-send-email 2.9.4 User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As same as commit 54a7d50b9205 ("x86: mark kprobe templates as character arrays, not single characters") did, to prevent miss detection of the string fortification, make the template symbols as kprobe_opecode_t arrays, instead of single kprobe_opecode_t. Unlike x86, arm has not supported the string fortification (ARCH_HAS_FORTIFY_SOURCE), so this is a kind of preventive patch. Original issue was reported at https://lkml.org/lkml/2017/7/19/1425 Signed-off-by: Masami Hiramatsu Suggested-by: Linus Torvalds --- arch/arm/include/asm/kprobes.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm/include/asm/kprobes.h b/arch/arm/include/asm/kprobes.h index 5965545..cf1cde4 100644 --- a/arch/arm/include/asm/kprobes.h +++ b/arch/arm/include/asm/kprobes.h @@ -54,15 +54,15 @@ int kprobe_exceptions_notify(struct notifier_block *self, unsigned long val, void *data); /* optinsn template addresses */ -extern __visible kprobe_opcode_t optprobe_template_entry; -extern __visible kprobe_opcode_t optprobe_template_val; -extern __visible kprobe_opcode_t optprobe_template_call; -extern __visible kprobe_opcode_t optprobe_template_end; -extern __visible kprobe_opcode_t optprobe_template_sub_sp; -extern __visible kprobe_opcode_t optprobe_template_add_sp; -extern __visible kprobe_opcode_t optprobe_template_restore_begin; -extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn; -extern __visible kprobe_opcode_t optprobe_template_restore_end; +extern __visible kprobe_opcode_t optprobe_template_entry[]; +extern __visible kprobe_opcode_t optprobe_template_val[]; +extern __visible kprobe_opcode_t optprobe_template_call[]; +extern __visible kprobe_opcode_t optprobe_template_end[]; +extern __visible kprobe_opcode_t optprobe_template_sub_sp[]; +extern __visible kprobe_opcode_t optprobe_template_add_sp[]; +extern __visible kprobe_opcode_t optprobe_template_restore_begin[]; +extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn[]; +extern __visible kprobe_opcode_t optprobe_template_restore_end[]; #define MAX_OPTIMIZED_LENGTH 4 #define MAX_OPTINSN_SIZE \