From nobody Wed Feb 12 19:34:29 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 4YtT5y2BR8z5nFjj; Wed, 12 Feb 2025 19:34:30 +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 4YtT5x6lGZz3T0M; Wed, 12 Feb 2025 19:34:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739388870; 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=GTtLNlVULXGxNyWjOgj9AxFFbcNg0QXvLCazfumSch0=; b=I0GLSf2/rR+cNX6iDRqLIEhNr+v07NqESw6Jm4X5aX+ke10B7PpHAWqfo4y1z+3cEXhuA2 3v5/7qqUcZFhcECmDvWZy42ReAMmrpZgY56JTe3ux0SfAqTrc/qCdur760owsKV+XHBA4Q iQHaU4Jwy63wA+NH3oUg4nx5FMAAKlEwikvM7RQfHpIMf+r3oCEAXT+/LJMKeuc9iGR1xD L9mauLzbMVpCxEL46Yp3nsb/CGWPoF0RB3RrrKzwKeSsr18JAAvWgJadPnDc/MEb5Ifu5m 5VvFuAyaIL5wGk+UBJ5gy6I8a+yAWxkIY4okneKYvl0UC5TkJU4fpp9ROzEM7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739388870; 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=GTtLNlVULXGxNyWjOgj9AxFFbcNg0QXvLCazfumSch0=; b=A0myAQ56f1rPKcu0WkAeAnOd0qPxQaBVDh/xMKnPmroSvoehtpFNg31wCiygMMipJJr+tS 5d0oHAMsoFvG9+WAPv5UT6GZRskGh2qw63GgCwCiMkFQsinsTB/E/UqhjNf4b7JckKcvAd yHnHNtgojO3uNLyXMdIyqgyci4YNdAMRaHhYhe/qfdeypj6Fs/4Xu1Fmk7+iwagDRkmyht xETJm1bNZQtJ072mX1sx0KVdnW9KfBHIsUpPtUJrkBouZeFCyZXV++1Q4R80vUio0gBzIx Qafg9Td7NOwEsJiIWVPrQVTRSopFWeU3TeacJkuX4msa8yLgCzWj+LAGb78rig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1739388870; a=rsa-sha256; cv=none; b=rje3o0qncAnr1Jq9er2GgC1QXRUSINROS03sOSAlE46l2sirRLvYpZlUVWGGJig5PkkGOn xB47RglaRR9QjuXjRLwRvKC6ZUOEeOG0Yy8kM3SnrpOOE0fj0zRBOVzhl7XOgiJ+R1fXFd sY4sf6M7pd9W1X08z3I+svYeUnaLeNJO80HujLih3McJG1p7sBKzvu88HQYpXR2mBKbDwL unfjcOCQCNOf2Hg+SsO5p+p0ESGfdCDKIj4om/JcgZISkPkjciMrAFwpLDWQ0hc219cbxM 4CGL/CiXZ2WSS+QfPf85Lc3eeWXzFhrBHmrFJrw431Wy9ku4c4LO5rTZrs3zHg== 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 4YtT5x6K7wz1Bst; Wed, 12 Feb 2025 19:34:29 +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 51CJYT9E059763; Wed, 12 Feb 2025 19:34:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51CJYTkb059760; Wed, 12 Feb 2025 19:34:29 GMT (envelope-from git) Date: Wed, 12 Feb 2025 19:34:29 GMT Message-Id: <202502121934.51CJYTkb059760@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 6de7a0d6c476 - main - ctld: Consistently free temporary strings during yacc parsing 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6de7a0d6c47615beecd8692e580aa3136c243303 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=6de7a0d6c47615beecd8692e580aa3136c243303 commit 6de7a0d6c47615beecd8692e580aa3136c243303 Author: John Baldwin AuthorDate: 2025-02-12 19:26:16 +0000 Commit: John Baldwin CommitDate: 2025-02-12 19:26:16 +0000 ctld: Consistently free temporary strings during yacc parsing The lexer always allocates a duplicate string via strdup for STR tokens. The parse handlers did not always free these duplicated strings after consuming them. Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48929 --- usr.sbin/ctld/parse.y | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/usr.sbin/ctld/parse.y b/usr.sbin/ctld/parse.y index 455411e31442..8ec33ee9286b 100644 --- a/usr.sbin/ctld/parse.y +++ b/usr.sbin/ctld/parse.y @@ -116,6 +116,7 @@ debug: DEBUG STR free($2); return (1); } + free($2); conf->conf_debug = tmp; } @@ -130,6 +131,7 @@ timeout: TIMEOUT STR free($2); return (1); } + free($2); conf->conf_timeout = tmp; } @@ -144,6 +146,7 @@ maxproc: MAXPROC STR free($2); return (1); } + free($2); conf->conf_maxproc = tmp; } @@ -180,6 +183,7 @@ isns_period: ISNS_PERIOD STR free($2); return (1); } + free($2); conf->conf_isns_period = tmp; } @@ -194,6 +198,7 @@ isns_timeout: ISNS_TIMEOUT STR free($2); return (1); } + free($2); conf->conf_isns_timeout = tmp; } @@ -366,6 +371,7 @@ portal_group_discovery_auth_group: DISCOVERY_AUTH_GROUP STR log_warnx("discovery-auth-group for portal-group " "\"%s\" specified more than once", portal_group->pg_name); + free($2); return (1); } portal_group->pg_discovery_auth_group = @@ -374,6 +380,7 @@ portal_group_discovery_auth_group: DISCOVERY_AUTH_GROUP STR log_warnx("unknown discovery-auth-group \"%s\" " "for portal-group \"%s\"", $2, portal_group->pg_name); + free($2); return (1); } free($2); @@ -463,6 +470,7 @@ portal_group_tag: TAG STR free($2); return (1); } + free($2); portal_group->pg_tag = tmp; } @@ -480,6 +488,7 @@ portal_group_dscp free($2); return(1); } + free($2); if (tmp >= 0x40) { yyerror("invalid dscp value"); return(1); @@ -520,9 +529,9 @@ portal_group_pcp: PCP STR free($2); return (1); } + free($2); if (tmp > 7) { yyerror("invalid pcp value"); - free($2); return (1); } @@ -600,6 +609,7 @@ target_alias: ALIAS STR if (target->t_alias != NULL) { log_warnx("alias for target \"%s\" " "specified more than once", target->t_name); + free($2); return (1); } target->t_alias = $2; @@ -616,12 +626,14 @@ target_auth_group: AUTH_GROUP STR log_warnx("cannot use both auth-group and explicit " "authorisations for target \"%s\"", target->t_name); + free($2); return (1); } target->t_auth_group = auth_group_find(conf, $2); if (target->t_auth_group == NULL) { log_warnx("unknown auth-group \"%s\" for target " "\"%s\"", $2, target->t_name); + free($2); return (1); } free($2); @@ -637,6 +649,7 @@ target_auth_type: AUTH_TYPE STR log_warnx("cannot use both auth-group and " "auth-type for target \"%s\"", target->t_name); + free($2); return (1); } } else { @@ -789,24 +802,22 @@ target_portal_group: PORTAL_GROUP STR STR free($3); return (1); } + free($2); tag = auth_group_find(conf, $3); if (tag == NULL) { log_warnx("unknown auth-group \"%s\" for target " "\"%s\"", $3, target->t_name); - free($2); free($3); return (1); } + free($3); tp = port_new(conf, target, tpg); if (tp == NULL) { log_warnx("can't link portal-group \"%s\" to target " - "\"%s\"", $2, target->t_name); - free($2); + "\"%s\"", tpg->pg_name, target->t_name); return (1); } tp->p_auth_group = tag; - free($2); - free($3); } | PORTAL_GROUP STR { @@ -820,14 +831,13 @@ target_portal_group: PORTAL_GROUP STR STR free($2); return (1); } + free($2); tp = port_new(conf, target, tpg); if (tp == NULL) { log_warnx("can't link portal-group \"%s\" to target " - "\"%s\"", $2, target->t_name); - free($2); + "\"%s\"", tpg->pg_name, target->t_name); return (1); } - free($2); } ; @@ -868,9 +878,9 @@ lun_number: STR free($1); return (1); } + free($1); if (tmp >= MAX_LUNS) { yyerror("LU number is too big"); - free($1); return (1); } @@ -962,6 +972,7 @@ lun_blocksize: BLOCKSIZE STR free($2); return (1); } + free($2); if (lun->l_blocksize != 0) { log_warnx("blocksize for lun \"%s\" " @@ -1007,6 +1018,7 @@ lun_device_type: DEVICE_TYPE STR free($2); return (1); } + free($2); lun_set_device_type(lun, tmp); } @@ -1021,6 +1033,7 @@ lun_ctl_lun: CTL_LUN STR free($2); return (1); } + free($2); if (lun->l_ctl_lun >= 0) { log_warnx("ctl_lun for lun \"%s\" " @@ -1081,6 +1094,7 @@ lun_size: SIZE STR free($2); return (1); } + free($2); if (lun->l_size != 0) { log_warnx("size for lun \"%s\" "