From nobody Thu Jan 30 21:11:00 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 4YkWsJ6ckCz5mkTl; Thu, 30 Jan 2025 21:11:00 +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 4YkWsJ5wnXz3MSt; Thu, 30 Jan 2025 21:11:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738271460; 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=MGJEWor6jayL7zqeyMtUx9SoPbY93MOqeCOZw764e2w=; b=kwRxMSKKNrvPtwy2jcPiKc15S+sy7dDuII8cAJbXEDh4Zo4DzqAYHFRYVMIP6CtvpPM8+a aO+mfgaLX0EyDuthbM0gPTFC3vKn37l5W3sR+J2SiBj5SkZ0MczryEv1QQbIdzVUyA3oAl kFV0Qba/3zoPgkCGXta0wJ6hJQSp/UXPpDdugqyGkebtBIr4riYS9AWEKMf0k202xR6CtE yVdrf8w+v3rZLk/3lEk08nbqKCBDJjt9/7xG/YfIiPKrsrfYLPc1WdmmxvuRyInopE8UW/ dQXs2+tmvBYohXDDIV0XnI3AXTxzkrhoV+rqTjhkkpCvggB3RBJOn3Cc4IHjbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738271460; 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=MGJEWor6jayL7zqeyMtUx9SoPbY93MOqeCOZw764e2w=; b=kF1eA5RnRKTN/vR0crXkntXmLqZpbVFiOC7QQ6ugR9VDh3l0IJCjB7FVoBYUZtpaEy/NCi VkC8JLoMBtScWgsKiDbefTuzOzUosnCcONKYy+F+boB9vnktYaXYwjSFbPteXRnxAR/JjN xEqw1RIOrkkmHp4+En4FxB8i2+Y21XlP5nM6+8NqY+7BGVP0R6Aph/Tf20f1RtwOlUMUcv y80lIdgMcr3KoIE9pqd/pyyxOi8a6mj9RzUDLcU08ixPMkvmwBbyNWllAGBAVFkv4KgqjQ 8HnyTnc2DM6fmji9ggC7Y6KVvVF3r4B2492gNV/1jLGyedyAN/DOzIS+9TAbZQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1738271460; a=rsa-sha256; cv=none; b=hANv8GCh1UMe94O3L0CME1SW48KenZY+n0Mpi0G8szyR1Z/r6NeQLUFQ7lbcF1cGhqgS7/ K7GvLdGwCxHcx8VKT+sY5bY4+0oHoIByLGl12NZWdhP2DsDm15o0EVAHrXx+d09dVYMFnL sSy0qNOmOuAGZfUToqVYVSyRYrdnoxV1nKg1CO/a/eJoJMAuLlnVFvMuMHzhZKdF4mzsHZ zup2h7QBp2/MUe4tv7n+ygvqEGMLp2XD4RjWjBsIktcgwVVAfhNZEDdCCsRN4sAYKS2zas QTpsSWzA1f+W6rfqV1a3rdJNXkj58yeyXTR8abR3SWTXFswV7KVNZ4fvTjCjcQ== 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 4YkWsJ4v4Lz144H; Thu, 30 Jan 2025 21:11:00 +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 50ULB0sa019772; Thu, 30 Jan 2025 21:11:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 50ULB0ci019769; Thu, 30 Jan 2025 21:11:00 GMT (envelope-from git) Date: Thu, 30 Jan 2025 21:11:00 GMT Message-Id: <202501302111.50ULB0ci019769@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: c63af363c245 - main - 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/main X-Git-Reftype: branch X-Git-Commit: c63af363c2458aebc30c01cd0b93b4b902580019 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c63af363c2458aebc30c01cd0b93b4b902580019 commit c63af363c2458aebc30c01cd0b93b4b902580019 Author: Dag-Erling Smørgrav AuthorDate: 2025-01-30 21:10:29 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-01-30 21:10:46 +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 --- 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 b0e98f128d9e..5a022a5384e7 100644 --- a/usr.bin/unifdef/tests/unifdef_test.sh +++ b/usr.bin/unifdef/tests/unifdef_test.sh @@ -36,7 +36,17 @@ EOF atf_check -s exit:1 -o inline:"b\n" unifdef -DFOO -DFOO=0