diff options
| author | Johan Söllvander <js@FreeBSD.org> | 2026-04-24 07:44:43 +0000 |
|---|---|---|
| committer | Colin Percival <cperciva@FreeBSD.org> | 2026-05-12 19:00:43 +0000 |
| commit | 379805b29732c4160fbbd6d109e9a5a1585d8e6f (patch) | |
| tree | b92463179c91deb2d7cc3a887ec135d66275d4b4 | |
| parent | a7bc1c0c353fc426ecfc98d42c807c74250c137d (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.cc | 10 |
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(); } |
