bridge-utils/bugfix-bridge-not-check-parameters.patch
2019-09-30 10:33:09 -04:00

45 lines
1.1 KiB
Diff

diff -Nur bridge-utils-1.5-old/brctl/brctl_cmd.c bridge-utils-1.5/brctl/brctl_cmd.c
--- bridge-utils-1.5-old/brctl/brctl_cmd.c 2018-05-17 07:03:02.868000000 -0400
+++ bridge-utils-1.5/brctl/brctl_cmd.c 2018-05-17 07:07:26.023000000 -0400
@@ -250,11 +250,20 @@
static int br_cmd_setpathcost(int argc, char *const* argv)
{
int cost, err;
+ int temp=0;
if (sscanf(argv[3], "%i", &cost) != 1) {
fprintf(stderr, "bad path cost value\n");
return 1;
}
+ while(*(argv[3]+temp)){
+ if(*(argv[3]+temp)<'0'||*(argv[3]+temp)>(9+'0')){
+ fprintf(stderr, "bad path cost value\n");
+ return 1;
+ }
+ temp++;
+ }
+
err = br_set_path_cost(argv[1], argv[2], cost);
if (err)
@@ -266,11 +275,19 @@
static int br_cmd_setportprio(int argc, char *const* argv)
{
int cost, err;
+ int temp=0;
if (sscanf(argv[3], "%i", &cost) != 1) {
fprintf(stderr, "bad path priority value\n");
return 1;
}
+ while(*(argv[3]+temp)){
+ if(*(argv[3]+temp)<'0'||*(argv[3]+temp)>(9+'0')){
+ fprintf(stderr, "bad path priority value\n");
+ return 1;
+ }
+ temp++;
+ }
err = br_set_port_priority(argv[1], argv[2], cost);
if (err)