On 2022-09-29 17:43, Stephen Hemminger wrote:
On Thu, 29 Sep 2022 17:21:37 +0200 Hans Schultz netdev@kapio-technology.com wrote:
@@ -493,6 +496,8 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv) req.ndm.ndm_flags |= NTF_EXT_LEARNED; } else if (matches(*argv, "sticky") == 0) { req.ndm.ndm_flags |= NTF_STICKY;
} else if (matches(*argv, "blackhole") == 0) {
} else { if (strcmp(*argv, "to") == 0) NEXT_ARG();ext_flags |= NTF_EXT_BLACKHOLE;
The parsing of flags is weird here, most of the flags are compared with strcmp() but some use matches().. I should have used strcmp() all the time; but at the time did not realize what kind of confusion matches() can cause.
Maybe just change all of them then, and then how about using strncmp() and maybe also strnlen() instead?