From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758176AbcFAIir (ORCPT ); Wed, 1 Jun 2016 04:38:47 -0400 Received: from mga02.intel.com ([134.134.136.20]:30302 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757656AbcFAIio (ORCPT ); Wed, 1 Jun 2016 04:38:44 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,400,1459839600"; d="scan'208";a="966461483" From: zhengjun.xing@intel.com To: rostedt@goodmis.org, mingo@redhat.com Cc: linux-kernel@vger.kernel.org, zhengjun.xing@intel.com Subject: [PATCH] tracing: Add *iter check for NULL Date: Wed, 1 Jun 2016 16:31:10 +0800 Message-Id: <1464769870-18344-1-git-send-email-zhengjun.xing@intel.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: xingzhen 3debb0a9ddb adding a "__used" to the variable in the __trace_printk_fmt section. Sometimes it will cause *iter to be NULL, then strcmp in lookup_format and strcpy in hold_module_trace_bprintk_format will panic. Signed-off-by: xingzhen --- kernel/trace/trace_printk.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c index f96f038..82ecfb5 100644 --- a/kernel/trace/trace_printk.c +++ b/kernel/trace/trace_printk.c @@ -55,6 +55,8 @@ void hold_module_trace_bprintk_format(const char **start, const char **end) mutex_lock(&btrace_mutex); for (iter = start; iter < end; iter++) { + if (!*iter) + goto err; struct trace_bprintk_fmt *tb_fmt = lookup_format(*iter); if (tb_fmt) { *iter = tb_fmt->fmt; @@ -75,6 +77,7 @@ void hold_module_trace_bprintk_format(const char **start, const char **end) *iter = fmt; } +err: mutex_unlock(&btrace_mutex); } -- 1.9.1