Re: fwcontrol update

Dieter <[email protected]>
Newsgroups gmane.os.freebsd.devel.firewire
Message-ID <[email protected]>
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?

================================================================================
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-firewire
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.