* [PATCH iproute2] bridge: use strtoi instead of atoi for checking value of cost/priority
@ 2021-11-11 9:33 15720603159
2021-11-11 11:06 ` Denis Kirjanov
0 siblings, 1 reply; 2+ messages in thread
From: 15720603159 @ 2021-11-11 9:33 UTC (permalink / raw)
To: netdev; +Cc: jinag
From: jinag <jinag12138@gmail.com>
Signed-off-by: jinag <jinag12138@gmail.com>
---
bridge/link.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/bridge/link.c b/bridge/link.c
index 205a2fe7..d60e1106 100644
--- a/bridge/link.c
+++ b/bridge/link.c
@@ -308,13 +308,14 @@ static int brlink_modify(int argc, char **argv)
__s8 bpdu_guard = -1;
__s8 fast_leave = -1;
__s8 root_block = -1;
- __u32 cost = 0;
+ __s32 cost = 0;
__s16 priority = -1;
__s8 state = -1;
__s16 mode = -1;
__u16 flags = 0;
struct rtattr *nest;
int ret;
+ char *end = NULL;
while (argc > 0) {
if (strcmp(*argv, "dev") == 0) {
@@ -367,10 +368,19 @@ static int brlink_modify(int argc, char **argv)
return ret;
} else if (strcmp(*argv, "cost") == 0) {
NEXT_ARG();
- cost = atoi(*argv);
+ cost = strtoul(*argv, &end, 10);
+ if ((cost <= 0) || (end == NULL) || (*end != '\0')) {
+ fprintf(stderr, "Error: invalid cost value\n");
+ return -1;
+ }
} else if (strcmp(*argv, "priority") == 0) {
NEXT_ARG();
priority = atoi(*argv);
+ priority = strtol(*argv, &end, 10);
+ if ((priority < 0) || (end == NULL) || (*end != '\0')) {
+ fprintf(stderr, "Error: invalid priority\n");
+ return -1;
+ }
} else if (strcmp(*argv, "state") == 0) {
NEXT_ARG();
char *endptr;
--
2.30.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH iproute2] bridge: use strtoi instead of atoi for checking value of cost/priority
2021-11-11 9:33 [PATCH iproute2] bridge: use strtoi instead of atoi for checking value of cost/priority 15720603159
@ 2021-11-11 11:06 ` Denis Kirjanov
0 siblings, 0 replies; 2+ messages in thread
From: Denis Kirjanov @ 2021-11-11 11:06 UTC (permalink / raw)
To: 15720603159, netdev; +Cc: jinag
11/11/21 12:33 PM, 15720603159@163.com пишет:
> From: jinag <jinag12138@gmail.com>
>
> Signed-off-by: jinag <jinag12138@gmail.com>
> ---
> bridge/link.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/bridge/link.c b/bridge/link.c
> index 205a2fe7..d60e1106 100644
> --- a/bridge/link.c
> +++ b/bridge/link.c
> @@ -308,13 +308,14 @@ static int brlink_modify(int argc, char **argv)
> __s8 bpdu_guard = -1;
> __s8 fast_leave = -1;
> __s8 root_block = -1;
> - __u32 cost = 0;
> + __s32 cost = 0;
> __s16 priority = -1;
> __s8 state = -1;
> __s16 mode = -1;
> __u16 flags = 0;
> struct rtattr *nest;
> int ret;
> + char *end = NULL;
>
> while (argc > 0) {
> if (strcmp(*argv, "dev") == 0) {
> @@ -367,10 +368,19 @@ static int brlink_modify(int argc, char **argv)
> return ret;
> } else if (strcmp(*argv, "cost") == 0) {
> NEXT_ARG();
> - cost = atoi(*argv);
> + cost = strtoul(*argv, &end, 10);
does it return a signed value?
> + if ((cost <= 0) || (end == NULL) || (*end != '\0')) {
> + fprintf(stderr, "Error: invalid cost value\n");
> + return -1;
> + }
> } else if (strcmp(*argv, "priority") == 0) {
> NEXT_ARG();
> priority = atoi(*argv);
> + priority = strtol(*argv, &end, 10);
> + if ((priority < 0) || (end == NULL) || (*end != '\0')) {
> + fprintf(stderr, "Error: invalid priority\n");
> + return -1;
> + }
> } else if (strcmp(*argv, "state") == 0) {
> NEXT_ARG();
> char *endptr;
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-11-11 11:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-11 9:33 [PATCH iproute2] bridge: use strtoi instead of atoi for checking value of cost/priority 15720603159
2021-11-11 11:06 ` Denis Kirjanov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.