fwcontrol update
Dieter
freebsd at sopwith.solgatos.com
Mon Aug 18 19:14:34 UTC 2008
case 'b':
if (priority_budget < 0 || priority_budget > INT32_MAX)
errx(EX_USAGE, "%s: invalid number: %s", __func__, optarg);
case 'f':
if ( (adjust_gap_count < 0) || (adjust_gap_count > INT32_MAX) )
err(EX_USAGE, "%s:adjust_gap_count out of range", __func__);
I think "out of range" is better than "invalid number".
-5 is a valid number.
Just a minor nit, feel free to ignore this one. :-)
================================================================================
> case 'c':
> crom_string = malloc(strlen(optarg)+1);
> if (crom_string == NULL)
> err(EX_SOFTWARE, "%s:crom_string malloc", __func__);
> if ( (strtol(crom_string, NULL, 0) < 0) || strtol(crom_string, NULL, 0) > MAX_BOARDS)
> err(EX_USAGE, "%s:Invalid value for node", __func__);
> strcpy(crom_string, optarg);
Strtol() reads freshly malloc-ed memory before anything has been put there.
Perhaps:
case 'c':
{
long node_num;
node_num = strtol(optarg, NULL, 0);
if ( (node_num < 0) || (node_num > MAX_BOARDS) )
err(EX_USAGE, "%s:node out of range", __func__);
crom_string = malloc(strlen(optarg)+1);
if (crom_string == NULL)
err(EX_SOFTWARE, "%s:crom_string malloc", __func__);
strcpy(crom_string, optarg);
...
}
case 'd':
================================================================================
case 'u':
current_board = strtol(optarg, NULL, 0);
Does this need a range check?
================================================================================
More information about the freebsd-firewire
mailing list