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);
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;
}
}
/* 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]);