From nobody Thu Feb 13 15:12:19 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YtzDz2MBCz5nbXF; Thu, 13 Feb 2025 15:12:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YtzDz1QYQz3bDL; Thu, 13 Feb 2025 15:12:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739459539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h58GjN3njUDQB9muTNEc8ekToNRUINBZpf1I+dQayCw=; b=e8VxUTrj2Ez1mcGA63fKqQCbdWXZB8rh2jw7MwddCjOHpt3odZDKbyVgNMB28hAERCAWr6 hX2uHP+JoM6J49NTEsxQx4dn+lfETzlYEwfhL0PyktgeItfHpkHXCkwxcszwQkVx0i4Gjo YOYreBbeh6JAsVbrzQnKybOK+66t1d6iHIDRHrRT2PNb3V1Q/J7NutH6SoFKbqAN4OZEAR iUkoWw6lqZht6h39LK+imRzyMWKxv8lMDnjesFlqzj4/3Igs6nl2g7FC2NwSBBLCmo66MG Osqx9wyHs3qxjv0xl8g3GpFDyjkJs9v+lBUqzcqw/2K7L/6UR3RehltpkW09Kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739459539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h58GjN3njUDQB9muTNEc8ekToNRUINBZpf1I+dQayCw=; b=UDIGCswd0ripWXGZj4X5XbtCza3gCY7a5q0GtU7qrzI0q5qzaoPlzRKbfIX+wgtyckFGFO AHcUxjsaAaGE4kleax33SauxsHQLIpoxq/gsvTrbU6KaV8PP+1JKqJHTIcaqLJ1P+8K/KF c7DkvukCBxlXMPxq4CPBnwgVq+AaIyZQ9b3UJEvZlYehUy0DH0jh77K8vL8CS7lOVhhBMt xnSxBwhTaX1KndzU3PpIEwBg00khTKnXBtyAP0jXOWvc+HYaDROtGm4Ly5ZU8OXM4tn2bd Ax1cU/qOCOZx3c9q69nvz3N0OuEDLoDhsbovzAe/LNESkBhiUT8hw5VQ9Shwbg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1739459539; a=rsa-sha256; cv=none; b=FLBjNx825DE3/I7TxEaFMoAbgGCst4uk2sBZE2pGOD2hNStqdN+lIiBoXTVGSBwC0uNlTi EOEDAFDyb7pPHh0+ENULuukNMsMIk+9EUpLhEFX4qJRf+NoyQQal1V29Gdah+m5CaQFt8p g/bIuh6LF3qlhu6/HeSjIwN5jmm15Z3lhSFem3n3yc+9awVQt1Hea33ECX7f0bdfW2XA8Y 3I8RtrIKJf+zZFpWoO6J9s7QfpbuGsk7QjgBLFWH0HTfBYMd60TXcwkxNe+QI/psklA517 hMlYCfa3Muhz4FuJzeZ30srEdrmhLEsenE3tNY4NgXmg3ZJe3llhNkWODXPZsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YtzDz0ywBzqwf; Thu, 13 Feb 2025 15:12:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51DFCJsf071065; Thu, 13 Feb 2025 15:12:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51DFCJXw071062; Thu, 13 Feb 2025 15:12:19 GMT (envelope-from git) Date: Thu, 13 Feb 2025 15:12:19 GMT Message-Id: <202502131512.51DFCJXw071062@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 1aaec1978a29 - releng/13.5 - unifdef: Fix collision check when adding symbols. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.5 X-Git-Reftype: branch X-Git-Commit: 1aaec1978a29410ec50124454ad80317b44ab2d6 Auto-Submitted: auto-generated The branch releng/13.5 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=1aaec1978a29410ec50124454ad80317b44ab2d6 commit 1aaec1978a29410ec50124454ad80317b44ab2d6 Author: Dag-Erling Smørgrav AuthorDate: 2025-01-30 21:10:29 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-02-13 15:12:02 +0000 unifdef: Fix collision check when adding symbols. findsym() is intended for use while parsing input, so it should not be called from addsym2() or indirectsym(), which are called before any input is processed. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D48733 Approved by: re (cperciva) (cherry picked from commit c63af363c2458aebc30c01cd0b93b4b902580019) (cherry picked from commit 931b0990297e2c6307b41bda95c5225cdf48403c) --- contrib/unifdef/unifdef.c | 11 +++++------ usr.bin/unifdef/tests/unifdef_test.sh | 10 ++++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/contrib/unifdef/unifdef.c b/contrib/unifdef/unifdef.c index 3dd4ace7b81e..ce8a1367adc2 100644 --- a/contrib/unifdef/unifdef.c +++ b/contrib/unifdef/unifdef.c @@ -1488,7 +1488,7 @@ findsym(const char **strp) static void indirectsym(void) { - const char *cp; + struct macro key = { 0 }; int changed; struct macro *sym, *ind; @@ -1497,10 +1497,9 @@ indirectsym(void) RB_FOREACH(sym, MACROMAP, ¯o_tree) { if (sym->value == NULL) continue; - cp = sym->value; - ind = findsym(&cp); + key.name = sym->value; + ind = RB_FIND(MACROMAP, ¯o_tree, &key); if (ind == NULL || ind == sym || - *cp != '\0' || ind->value == NULL || ind->value == sym->value) continue; @@ -1539,10 +1538,10 @@ addsym1(bool ignorethis, bool definethis, char *symval) static void addsym2(bool ignorethis, const char *symname, const char *val) { - const char *cp = symname; + struct macro key = { .name = symname }; struct macro *sym, *r; - sym = findsym(&cp); + sym = RB_FIND(MACROMAP, ¯o_tree, &key); if (sym == NULL) { sym = calloc(1, sizeof(*sym)); sym->ignore = ignorethis; diff --git a/usr.bin/unifdef/tests/unifdef_test.sh b/usr.bin/unifdef/tests/unifdef_test.sh index dfb08c187724..97a1b1aa6310 100644 --- a/usr.bin/unifdef/tests/unifdef_test.sh +++ b/usr.bin/unifdef/tests/unifdef_test.sh @@ -37,7 +37,17 @@ EOF atf_check -s exit:1 -o inline:"b\n" unifdef -DFOO -DFOO=0