]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev/ethtool: fix error detection of ethtool_link_mode_bit_from_string()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 25 Feb 2019 03:35:40 +0000 (12:35 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 25 Feb 2019 03:35:40 +0000 (12:35 +0900)
src/udev/net/ethtool-util.c

index 6a0a42386be1865ccd26e68be803bbad6df436ac..55620926dc4cb255e50552fc0b7f5d153951c6a8 100644 (file)
@@ -775,7 +775,9 @@ int config_parse_advertise(const char *unit,
                         break;
 
                 mode = ethtool_link_mode_bit_from_string(w);
-                if (mode < 0) {
+                /* We reuse the kernel provided enum which does not contain negative value. So, the cast
+                 * below is mandatory. Otherwise, the check below always passes and access an invalid address. */
+                if ((int) mode < 0) {
                         log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse advertise mode, ignoring: %s", w);
                         continue;
                 }