aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Söllvander <js@FreeBSD.org>2026-04-24 07:44:43 +0000
committerColin Percival <cperciva@FreeBSD.org>2026-05-12 19:00:43 +0000
commit379805b29732c4160fbbd6d109e9a5a1585d8e6f (patch)
treeb92463179c91deb2d7cc3a887ec135d66275d4b4
parenta7bc1c0c353fc426ecfc98d42c807c74250c137d (diff)
ctld: normalize iSCSI TargetName on login
Case-insensitive TargetName matching on logins was accidentally removed, let's fix that by normalizing TargetName again according to RFC 3722. Approved by: re (cperciva) PR: 294522 Fixes: 4b1aac931465f39c5c26bfa1d5539a428d340f20 Sponsored by: ConnectWise Reviewed by: asomers, jhb Approved by: asomers (mentor) Differential Revision: https://reviews.freebsd.org/D56469 (cherry picked from commit eb837cb8b2073c09bafaf3318f5bb103827b2bca) (cherry picked from commit 0baae6223a6350215d7b11264e59408362b15a19)
-rw-r--r--usr.sbin/ctld/login.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.sbin/ctld/login.cc b/usr.sbin/ctld/login.cc
index cda11cc1f21b..fb4b60c37f54 100644
--- a/usr.sbin/ctld/login.cc
+++ b/usr.sbin/ctld/login.cc
@@ -967,12 +967,18 @@ iscsi_connection::login()
login_send_error(request, 0x02, 0x07);
log_errx(1, "received Login PDU without TargetName");
}
+ /*
+ * Normalize target_name according to RFC 3722
+ */
+ std::string t_name(target_name);
+ for (char &c : t_name)
+ c = tolower(c);
- conn_port = pg->find_port(target_name);
+ conn_port = pg->find_port(t_name);
if (conn_port == NULL) {
login_send_error(request, 0x02, 0x03);
log_errx(1, "requested target \"%s\" not found",
- target_name);
+ t_name.c_str());
}
conn_target = conn_port->target();
}