Skip to content

Commit

Permalink
[cmdline] Fix up "sleep" argument parsing
Browse files Browse the repository at this point in the history
Use parse_integer() rather than strtoul() to allow parsing errors to
be reported in a meaningful way.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Oct 24, 2011
1 parent bf2da31 commit f177a6f
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/core/exec.c
Expand Up @@ -548,17 +548,25 @@ static struct command_descriptor sleep_cmd =
*/
static int sleep_exec ( int argc, char **argv ) {
struct sleep_options opts;
unsigned long start, delay;
unsigned int seconds;
unsigned long start;
unsigned long delay;
int rc;

/* Parse options */
if ( ( rc = parse_options ( argc, argv, &sleep_cmd, &opts ) ) != 0 )
return rc;

/* Parse number of seconds */
if ( ( rc = parse_integer ( argv[optind], &seconds ) ) != 0 )
return rc;

/* Delay for specified number of seconds */
start = currticks();
delay = strtoul ( argv[1], NULL, 0 ) * ticks_per_sec();
delay = ( seconds * TICKS_PER_SEC );
while ( ( currticks() - start ) <= delay )
cpu_nap();

return 0;
}

Expand Down

0 comments on commit f177a6f

Please sign in to comment.