]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd, zebra: don't compare unsigned < 0
authorQuentin Young <qlyoung@cumulusnetworks.com>
Sun, 5 Apr 2020 03:26:19 +0000 (23:26 -0400)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Sun, 5 Apr 2020 03:26:19 +0000 (23:26 -0400)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
bgpd/bgp_main.c
zebra/main.c

index c14a1a05ac16cfbdd96d2573a6a91cffa8f9aab4..8f0ccca74226d9c331a0deb5f11265160da9852c 100644 (file)
@@ -425,17 +425,21 @@ int main(int argc, char **argv)
                        else
                                bgp_port = tmp_port;
                        break;
-               case 'e':
-                       multipath_num = atoi(optarg);
-                       if (multipath_num > MULTIPATH_NUM
-                           || multipath_num <= 0) {
+               case 'e': {
+                       unsigned long int parsed_multipath =
+                               strtoul(optarg, NULL, 10);
+                       if (parsed_multipath == 0
+                           || parsed_multipath > MULTIPATH_NUM
+                           || parsed_multipath > UINT_MAX) {
                                flog_err(
                                        EC_BGP_MULTIPATH,
-                                       "Multipath Number specified must be less than %d and greater than 0",
+                                       "Multipath Number specified must be less than %u and greater than 0",
                                        MULTIPATH_NUM);
                                return 1;
                        }
+                       multipath_num = parsed_multipath;
                        break;
+               }
                case 'l':
                        bgp_address = optarg;
                /* listenon implies -n */
index 306372ccdb841c3f7397954bcf22e8183b7eb05d..fb7e926c5cdcc66db0290bff2f3be62a02d69006 100644 (file)
@@ -331,17 +331,21 @@ int main(int argc, char **argv)
                case 'a':
                        allow_delete = 1;
                        break;
-               case 'e':
-                       zrouter.multipath_num = atoi(optarg);
-                       if (zrouter.multipath_num > MULTIPATH_NUM
-                           || zrouter.multipath_num <= 0) {
+               case 'e': {
+                       unsigned long int parsed_multipath =
+                               strtoul(optarg, NULL, 10);
+                       if (parsed_multipath == 0
+                           || parsed_multipath > MULTIPATH_NUM
+                           || parsed_multipath > UINT32_MAX) {
                                flog_err(
                                        EC_ZEBRA_BAD_MULTIPATH_NUM,
-                                       "Multipath Number specified must be less than %d and greater than 0",
+                                       "Multipath Number specified must be less than %u and greater than 0",
                                        MULTIPATH_NUM);
                                return 1;
                        }
+                       zrouter.multipath_num = parsed_multipath;
                        break;
+               }
                case 'o':
                        vrf_default_name_configured = optarg;
                        break;