Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Feb 2025 15:15:49 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: f3a43b3db881 - main - ctld: Fail UCL configurations with a nested error
Message-ID:  <202502261515.51QFFnEb033948@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=f3a43b3db881679d0b82b97f18871422050a5819

commit f3a43b3db881679d0b82b97f18871422050a5819
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2025-02-26 15:11:07 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2025-02-26 15:11:07 +0000

    ctld: Fail UCL configurations with a nested error
    
    Errors from auth groups, portal groups, global luns, and targets were
    not propagated out of the main loop.
    
    Sponsored by:   Chelsio Communications
    Differential Revision:  https://reviews.freebsd.org/D49071
---
 usr.sbin/ctld/uclparse.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/usr.sbin/ctld/uclparse.c b/usr.sbin/ctld/uclparse.c
index f8f8954304fa..2dc4872bee84 100644
--- a/usr.sbin/ctld/uclparse.c
+++ b/usr.sbin/ctld/uclparse.c
@@ -336,7 +336,9 @@ uclparse_toplevel(const ucl_object_t *top)
 			if (obj->type == UCL_OBJECT) {
 				iter = NULL;
 				while ((child = ucl_iterate_object(obj, &iter, true))) {
-					uclparse_auth_group(ucl_object_key(child), child);
+					if (!uclparse_auth_group(
+					    ucl_object_key(child), child))
+						return (false);
 				}
 			} else {
 				log_warnx("\"auth-group\" section is not an object");
@@ -348,7 +350,9 @@ uclparse_toplevel(const ucl_object_t *top)
 			if (obj->type == UCL_OBJECT) {
 				iter = NULL;
 				while ((child = ucl_iterate_object(obj, &iter, true))) {
-					uclparse_portal_group(ucl_object_key(child), child);
+					if (!uclparse_portal_group(
+					    ucl_object_key(child), child))
+						return (false);
 				}
 			} else {
 				log_warnx("\"portal-group\" section is not an object");
@@ -360,7 +364,9 @@ uclparse_toplevel(const ucl_object_t *top)
 			if (obj->type == UCL_OBJECT) {
 				iter = NULL;
 				while ((child = ucl_iterate_object(obj, &iter, true))) {
-					uclparse_lun(ucl_object_key(child), child);
+					if (!uclparse_lun(ucl_object_key(child),
+					    child))
+						return (false);
 				}
 			} else {
 				log_warnx("\"lun\" section is not an object");
@@ -379,8 +385,9 @@ uclparse_toplevel(const ucl_object_t *top)
 				iter = NULL;
 				while ((child = ucl_iterate_object(obj, &iter,
 				    true))) {
-					uclparse_target(ucl_object_key(child),
-					    child);
+					if (!uclparse_target(
+					    ucl_object_key(child), child))
+						return (false);
 				}
 			} else {
 				log_warnx("\"target\" section is not an object");



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502261515.51QFFnEb033948>