net: ipv6: Fixed IPv6 string to address conversion off-by-one error
authorEhsan Mohandesi <emohandesi@microsoft.com>
Fri, 13 Jan 2023 17:27:41 +0000 (09:27 -0800)
committerTom Rini <trini@konsulko.com>
Thu, 2 Feb 2023 19:44:53 +0000 (14:44 -0500)
One extra character was being checked in the IPv6 string which caused the
last character of the address to be neither '\0' nor ':'. This raises an
error condition and causes the function to always return an error. This
issue was resolved by this fix.

Signed-off-by: Ehsan Mohandesi <emohandesi@microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
net/tftp.c

index 51e062b..88e71e6 100644 (file)
@@ -845,7 +845,7 @@ void tftp_start(enum proto_t protocol)
                        e = strchr(net_boot_file_name, ']');
                        len = e - s;
                        if (s && e) {
-                               string_to_ip6(s + 1, len, &tftp_remote_ip6);
+                               string_to_ip6(s + 1, len - 1, &tftp_remote_ip6);
                                strlcpy(tftp_filename, e + 2, MAX_LEN);
                        } else {
                                strlcpy(tftp_filename, net_boot_file_name, MAX_LEN);