Commit 8cd8f53b authored by Bernd Eckenfels's avatar Bernd Eckenfels

this fixes segfault on -A "" and -F "" in mii-tool reported in debian

bug #139027
parent 7e52da1d
......@@ -166,7 +166,7 @@ static int parse_media(char *arg)
s = strtok(arg, ", ");
do {
for (i = 0; i < NMEDIA; i++)
if (strcasecmp(media[i].name, s) == 0) break;
if (s && strcasecmp(media[i].name, s) == 0) break;
if (i == NMEDIA) goto failed;
mask |= media[i].value;
} while ((s = strtok(NULL, ", ")) != NULL);
......@@ -329,7 +329,7 @@ static int do_one_xcvr(int skfd, char *ifname, int maybe)
printf("resetting the transceiver...\n");
mdio_write(skfd, MII_BMCR, MII_BMCR_RESET);
}
if (nway_advertise) {
if (nway_advertise > 0) {
mdio_write(skfd, MII_ANAR, nway_advertise | 1);
opt_restart = 1;
}
......@@ -411,6 +411,10 @@ int main(int argc, char **argv)
}
/* Check for a few inappropriate option combinations */
if (opt_watch) verbose = 0;
if ((nway_advertise < 0) || (fixed_speed < 0))
return 2;
if (errflag || (fixed_speed & (fixed_speed-1)) ||
(fixed_speed && (opt_restart || nway_advertise))) {
fprintf(stderr, usage, argv[0]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment