summaryrefslogtreecommitdiff
path: root/nuttx/examples
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-02-23 03:17:29 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-02-23 03:17:29 +0000
commit940ad0838da7d5bc2622606a0b42225683494f11 (patch)
treec7046e60163ac337f5c146a125130985e08857f0 /nuttx/examples
parent086efc834d511d771a996f895c73d35ca020b1d6 (diff)
downloadpx4-nuttx-940ad0838da7d5bc2622606a0b42225683494f11.tar.gz
px4-nuttx-940ad0838da7d5bc2622606a0b42225683494f11.tar.bz2
px4-nuttx-940ad0838da7d5bc2622606a0b42225683494f11.zip
Back out last change; correct fix is in NSH
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3311 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/examples')
-rw-r--r--nuttx/examples/nsh/nsh_fscmds.c64
-rw-r--r--nuttx/examples/nsh/nsh_netcmds.c69
2 files changed, 103 insertions, 30 deletions
diff --git a/nuttx/examples/nsh/nsh_fscmds.c b/nuttx/examples/nsh/nsh_fscmds.c
index f61b084e2..b5b118791 100644
--- a/nuttx/examples/nsh/nsh_fscmds.c
+++ b/nuttx/examples/nsh/nsh_fscmds.c
@@ -1,7 +1,7 @@
/****************************************************************************
* examples/nsh/nsh_fscmds.c
*
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -663,6 +663,7 @@ int cmd_losetup(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
bool teardown = false;
bool readonly = false;
off_t offset = 0;
+ bool badarg = false;
int ret = ERROR;
int option;
@@ -695,10 +696,18 @@ int cmd_losetup(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
case '?':
default:
nsh_output(vtbl, g_fmtarginvalid, argv[0]);
- return ERROR;
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* If this is not a tear down operation, then additional command line
* parameters are required.
*/
@@ -783,6 +792,7 @@ int cmd_ls(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
const char *relpath;
unsigned int lsflags = 0;
char *fullpath;
+ bool badarg = false;
int ret;
/* Get the ls options */
@@ -807,10 +817,18 @@ int cmd_ls(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
case '?':
default:
nsh_output(vtbl, g_fmtarginvalid, argv[0]);
- return ERROR;
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* There may be one argument after the options */
if (optind + 1 < argc)
@@ -943,6 +961,7 @@ int cmd_mkrd(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
const char *fmt;
uint8_t *buffer;
uint32_t nsectors;
+ bool badarg = false;
int sectsize = 512;
int minor = 0;
int ret;
@@ -958,8 +977,8 @@ int cmd_mkrd(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
minor = atoi(optarg);
if (minor < 0 || minor > 255)
{
- fmt = g_fmtargrange;
- goto errout_with_fmt;
+ nsh_output(vtbl, g_fmtargrange, argv[0]);
+ badarg = true;
}
break;
@@ -967,22 +986,31 @@ int cmd_mkrd(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
sectsize = atoi(optarg);
if (minor < 0 || minor > 16384)
{
- fmt = g_fmtargrange;
- goto errout_with_fmt;
+ nsh_output(vtbl, g_fmtargrange, argv[0]);
+ badarg = true;
}
break;
case ':':
- fmt = g_fmtargrequired;
- goto errout_with_fmt;
+ nsh_output(vtbl, g_fmtargrequired, argv[0]);
+ badarg = true;
+ break;
case '?':
default:
- fmt = g_fmtarginvalid;
- goto errout_with_fmt;
+ nsh_output(vtbl, g_fmtarginvalid, argv[0]);
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* There should be exactly on parameter left on the command-line */
if (optind == argc-1)
@@ -1043,6 +1071,7 @@ int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
char *source;
char *target;
char *filesystem = 0;
+ bool badarg = false;
int ret;
/* Get the mount options */
@@ -1058,15 +1087,24 @@ int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
case ':':
nsh_output(vtbl, g_fmtargrequired, argv[0]);
- return ERROR;
+ badarg = true;
+ break;
case '?':
default:
nsh_output(vtbl, g_fmtarginvalid, argv[0]);
- return ERROR;
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* There are two required arguments after the options */
if (optind + 2 < argc)
diff --git a/nuttx/examples/nsh/nsh_netcmds.c b/nuttx/examples/nsh/nsh_netcmds.c
index e77fd7604..77caeea82 100644
--- a/nuttx/examples/nsh/nsh_netcmds.c
+++ b/nuttx/examples/nsh/nsh_netcmds.c
@@ -1,7 +1,7 @@
/****************************************************************************
* examples/nsh/nsh_netcmds.c
*
- * Copyright (C) 2007-2010 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -281,6 +281,7 @@ int tftpc_parseargs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv,
struct tftpc_args_s *args)
{
FAR const char *fmt = g_fmtarginvalid;
+ bool badarg = false;
int option;
/* Get the ping options */
@@ -306,21 +307,30 @@ int tftpc_parseargs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv,
if (!uiplib_ipaddrconv(optarg, (FAR unsigned char*)&args->ipaddr))
{
nsh_output(vtbl, g_fmtarginvalid, argv[0]);
- goto errout;
+ badarg = true;
}
break;
case ':':
- fmt = g_fmtargrequired;
- goto errout;
+ nsh_output(vtbl, g_fmtargrequired, argv[0]);
+ badarg = true;
+ break;
case '?':
default:
- fmt = g_fmtarginvalid;
- goto errout;
+ nsh_output(vtbl, g_fmtarginvalid, argv[0]);
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* There should be exactly on parameter left on the command-line */
if (optind == argc-1)
@@ -478,6 +488,7 @@ int cmd_ping(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
uint32_t next;
uint32_t dsec = 10;
uint16_t id;
+ bool badarg = false;
int count = 10;
int option;
int seqno;
@@ -496,8 +507,8 @@ int cmd_ping(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
count = atoi(optarg);
if (count < 1 || count > 10000)
{
- fmt = g_fmtargrange;
- goto errout;
+ nsh_output(vtbl, g_fmtargrange, argv[0]);
+ badarg = true;
}
break;
@@ -505,21 +516,35 @@ int cmd_ping(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
tmp = atoi(optarg);
if (tmp < 1 || tmp >= 4294)
{
- fmt = g_fmtargrange;
- goto errout;
+ nsh_output(vtbl, g_fmtargrange, argv[0]);
+ badarg = true;
+ }
+ else
+ {
+ dsec = 10 * tmp;
}
- dsec = 10 * tmp;
break;
case ':':
- fmt = g_fmtargrequired;
+ nsh_output(vtbl, g_fmtargrequired, argv[0]);
+ badarg = true;
+ break;
case '?':
default:
- goto errout;
+ nsh_output(vtbl, g_fmtarginvalid, argv[0]);
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* There should be exactly on parameter left on the command-line */
if (optind == argc-1)
@@ -666,6 +691,7 @@ int cmd_wget(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
char *fullpath = NULL;
char *url;
const char *fmt;
+ bool badarg = false;
int option;
int fd = -1;
int ret;
@@ -681,16 +707,25 @@ int cmd_wget(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
break;
case ':':
- fmt = g_fmtargrequired;
- goto errout;
+ nsh_output(vtbl, g_fmtargrequired, argv[0]);
+ badarg = true;
+ break;
case '?':
default:
- fmt = g_fmtarginvalid;
- goto errout;
+ nsh_output(vtbl, g_fmtarginvalid, argv[0]);
+ badarg = true;
+ break;
}
}
+ /* If a bad argument was encountered, then return without processing the command */
+
+ if (badarg)
+ {
+ return ERROR;
+ }
+
/* There should be exactly on parameter left on the command-line */
if (optind == argc-1)