From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 136AE3914FF for ; Mon, 13 Apr 2026 22:38:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776119896; cv=none; b=kwelpSZV8SGEBiWQj3pyh9Qdyu26JxYOtWkFfJWWhBTpd4RgVORiVBD5nUg2Bj5O1vDX8FTik5njy+zegjapo14Uq2h0ToELmdEEPADmywUBNr4iaZ/LFeDphsncl3OO8n5eZyp3NopJhJyHPQQFCmJQqmzogN99HRb7ehgbSaU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776119896; c=relaxed/simple; bh=AepFIl5sGKiy8IHmXV3ZD/d4Ox6LeKc15IFSBh1eBYs=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=RQWMbUWOdi2vc0DMXScjvwc3W28M+fTlZ1lSq6jsOExhTgb4ksnP8MdXWmreO7ob2v1B7B2tiZGEPLTOa8893z8mB59q4aiz9W8Xm88xx/geR8SUXdKa6+gxYLW49Ycxb5LLTWlDUFElnsgNEEn1iCIMqbVE3tHdbE6WBNhnaUk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=W8ORGxxm; arc=none smtp.client-ip=209.85.219.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W8ORGxxm" Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-8a58057d7baso54060056d6.1 for ; Mon, 13 Apr 2026 15:38:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776119894; x=1776724694; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:cc:to:from:subject:message-id:from:to :cc:subject:date:message-id:reply-to; bh=i5+vxxLyC5WQO0AugNFfK8SLmwyI1aIjZaJmeT/G/1I=; b=W8ORGxxmWcKXuqODiSXZnXf79efQwc8iWiZYagzamxfKjVKPBp5MrF51QSPiv+r1BC qJ8sct/Ov7vUo0nYyeIJJYD7QVLI7bpHdA8YUB40YCVL4FR5KdKZyo3W33qHAipcN+k/ pYRoNyn2c60gcp2LnNe6PSq500cUQrSuDgIxtYE5/9PtWTUU8PoZzrKlz3AMTxbCGbfR ozCCgcOTvVPMDgvAq/84kq5gxn+A0RSUQg89D3NPcBksBAiNut8+gF/zdw22GvkheFGq A+BXtxlEo1kdsYQCrnMzATthK9FKCpM8k4RLJaj2zpUqzxvAOXZYW9m2AU8O8HwhIpPx tcQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776119894; x=1776724694; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=i5+vxxLyC5WQO0AugNFfK8SLmwyI1aIjZaJmeT/G/1I=; b=EmvPuO7FQpJ0c3N2og6tG/6k7lZjUKkjcnkAvyFlDpqgS5XExTHqD7grAdsm7y9G9r vl2eYs9mZj2c3X00h/Jb2PI2HMZzQhKN67YtKL+p43iVeYQuk49eowT55hwiEP+eLGDA QRTz8qD9D/NYP0gds8zBQZ3/a07WtG7uu13C/HgeIHVQWL499D+n564tcWUeakNDihZX dcOF8rffw3ZXzUiG4Vb+pkd6ZZ+xmWhJFpnj2jbbiU/ajMQO7mVakybTt5eYdIdUnZCH +aO5MXcqP8lbomEZZ38FKiC6U5PW7Yv4b1/tlKThyQfLGwlAEe/nEa0dSYf27TyfOKLr JVuw== X-Forwarded-Encrypted: i=1; AFNElJ/2FmzWDEhNkBgj2dEgQaY02bpFkHgeJVLezCaAc7qhDigpXLcEH8bHnYNbxUaMTb7vdm6Mict01xXglyY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5y3sFQE4zJ7TOTJeEC7l+Pgbq8Z5l8D2UFS0E8qPnd1Jl9dLh tatYXRA5eNdo9QSOmPaDFJ94DprnG3aTMaTOQgmXZFSfQrG9nn43irAO X-Gm-Gg: AeBDieu9yqPmgjLOrrxzJrI8G3JLh/r2hzwUfO9Z+HbdXux+bKzRpc6gKyG9A0t+od4 cyiC5Q7zs9jlPGn66WTwSk9H/+88liufI8qiUL5Y0B438dS/FHtzvsL2zxH/P4LUToJEaizzXle tTwy+0QQuQDs5+JaubdJoQgStfUz1AlpnDqzz6jNxlX4Hd+rTKZ5MUweL0FbaQSZvgpxPk7lzkx omCgeP5I3I0An7lh7k9pSS0VspnuqCzpPAFXPKMMMThNA9SkFAp8tpHu4GshlolFW4kw8OAg1dS hvYVzUSXL7lTFFXmv+S8gZ5YnvvYP/WUxzhXqriXwassA7cOApvOiSbvGVHbpvEK+8/1abNz6xV NI2fBYyjf9S8PfYCey/YQvAnDnEd+SZPrrVQolOQBOUplSEuaig7LgjZnffTk8DXGt/xkJTfZO0 eTNplSobsrS+s6oTnosvOpU9/h550rk9nlEiIAkDZo0+tQuHXfmtoUYK32tZP3kLyNOU0EASLHW fbC7hLH X-Received: by 2002:a05:6214:4411:b0:8a1:3ba4:9832 with SMTP id 6a1803df08f44-8ac861ad3b5mr235412526d6.16.1776119894039; Mon, 13 Apr 2026 15:38:14 -0700 (PDT) Received: from ?IPv6:2601:246:5b7e:1b40:37d1:d7ab:b3b9:2d93? ([2601:246:5b7e:1b40:37d1:d7ab:b3b9:2d93]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8ac849dbb44sm103807366d6.10.2026.04.13.15.38.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 15:38:13 -0700 (PDT) Message-ID: Subject: Re: [PATCH v2 1/2] tracing/hist: rebuild full_name on each hist_field_name() call From: Tom Zanussi To: Pengpeng Hou , rostedt@goodmis.org Cc: mhiramat@kernel.org, mathieu.desnoyers@efficios.com, tom.zanussi@linux.intel.com, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Date: Mon, 13 Apr 2026 17:38:11 -0500 In-Reply-To: <20260401112224.85582-1-pengpeng@iscas.ac.cn> References: <20260401112224.85582-1-pengpeng@iscas.ac.cn> Autocrypt: addr=tzanussi@gmail.com; prefer-encrypt=mutual; keydata=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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.52.3-0ubuntu1.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Wed, 2026-04-01 at 19:22 +0800, Pengpeng Hou wrote: > hist_field_name() uses a static MAX_FILTER_STR_VAL buffer for fully > qualified variable-reference names, but it currently appends into that > buffer with strcat() without rebuilding it first. As a result, repeated > calls append a new "system.event.field" name onto the previous one, > which can eventually run past the end of full_name. >=20 > Build the name with snprintf() on each call and return NULL if the fully > qualified name does not fit in MAX_FILTER_STR_VAL. >=20 > Fixes: 067fe038e70f ("tracing: Add variable reference handling to hist tr= iggers") > Signed-off-by: Pengpeng Hou Looks good to me, thanks. Reviewed-by: Tom Zanussi Tested-by: Tom Zanussi > --- > Changes since v1: https://lore.kernel.org/all/20260329030950.32503-1-peng= peng@iscas.ac.cn/ >=20 > - rebuild full_name on each call instead of falling back to field->name > - return NULL on overflow as suggested > - split out the snprintf() length check instead of using an inline if >=20 > =C2=A0kernel/trace/trace_events_hist.c | 12 +++++++----- > =C2=A01 file changed, 7 insertions(+), 5 deletions(-) >=20 > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events= _hist.c > index 73ea180cad55..f9c8a4f078ea 100644 > --- a/kernel/trace/trace_events_hist.c > +++ b/kernel/trace/trace_events_hist.c > @@ -1361,12 +1361,14 @@ static const char *hist_field_name(struct hist_fi= eld *field, > =C2=A0 field->flags & HIST_FIELD_FL_VAR_REF) { > =C2=A0 if (field->system) { > =C2=A0 static char full_name[MAX_FILTER_STR_VAL]; > + int len; > + > + len =3D snprintf(full_name, sizeof(full_name), "%s.%s.%s", > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field->system, field->event_nam= e, > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field->name); > + if (len >=3D sizeof(full_name)) > + return NULL; > =C2=A0 > - strcat(full_name, field->system); > - strcat(full_name, "."); > - strcat(full_name, field->event_name); > - strcat(full_name, "."); > - strcat(full_name, field->name); > =C2=A0 field_name =3D full_name; > =C2=A0 } else > =C2=A0 field_name =3D field->name;