mirror of
https://github.com/xcat2/xNBA.git
synced 2025-02-16 02:28:24 +00:00
[cmdline] Fix "isset" command
Commit b5f5f73 ("[cmdline] Expand settings within each command-line token individually") introduced a regression into the "isset" command: it is now possible for command-line arguments to be empty strings, and so "isset" cannot simply check for a non-empty argument list. Restore previous behaviour by checking for the presence of any non-empty arguments, rather than checking for a non-empty argument list. Reported-by: Nemtallah Daher <n.daher@csuohio.edu> Tested-by: Nemtallah Daher <n.daher@csuohio.edu> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
58dcb2e15e
commit
06f1878fb8
@ -476,14 +476,20 @@ static struct command_descriptor isset_cmd =
|
||||
*/
|
||||
static int isset_exec ( int argc, char **argv ) {
|
||||
struct isset_options opts;
|
||||
int i;
|
||||
int rc;
|
||||
|
||||
/* Parse options */
|
||||
if ( ( rc = parse_options ( argc, argv, &isset_cmd, &opts ) ) != 0 )
|
||||
return rc;
|
||||
|
||||
/* Return success iff any arguments exist */
|
||||
return ( ( optind == argc ) ? -ENOENT : 0 );
|
||||
/* Return success if any argument is non-empty */
|
||||
for ( i = optind ; i < argc ; i++ ) {
|
||||
if ( argv[i][0] != '\0' )
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
/** "isset" command */
|
||||
|
Loading…
x
Reference in New Issue
Block a user