summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Oguin <josh.oguin@oarcorp.com>2014-11-19 14:26:11 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2014-11-26 07:51:57 -0600
commit61f8d668d03ca5580eab124d4901da4e1e889d25 (patch)
tree3040c0c240da832fdff0f438f7ba0f1b562a0512
parentapimutex.c: Add _Assert for NULL pointer access (diff)
downloadrtems-61f8d668d03ca5580eab124d4901da4e1e889d25.tar.bz2
libbsp/shared/bspinit.c: Document assumption of NULL returned
-rw-r--r--c/src/lib/libbsp/shared/bspinit.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/c/src/lib/libbsp/shared/bspinit.c b/c/src/lib/libbsp/shared/bspinit.c
index 86c950c548..b524389de2 100644
--- a/c/src/lib/libbsp/shared/bspinit.c
+++ b/c/src/lib/libbsp/shared/bspinit.c
@@ -37,12 +37,10 @@ rtems_task Init (rtems_task_argument arg)
char** argv = NULL;
int result = -124;
- if (boot_cmdline)
- {
+ if (boot_cmdline) {
cmdline = malloc (strlen (boot_cmdline) + 1);
- if (cmdline)
- {
+ if (cmdline) {
strcpy (cmdline, boot_cmdline);
command = cmdline;
@@ -50,8 +48,7 @@ rtems_task Init (rtems_task_argument arg)
/*
* Break the line up into arguments with "" being ignored.
*/
- while (true)
- {
+ while (true) {
command = strtok (command, " \t\r\n");
if (command == NULL)
break;
@@ -59,22 +56,25 @@ rtems_task Init (rtems_task_argument arg)
command = '\0';
}
+ /*
+ * If there are arguments, allocate enough memory for the argv
+ * array to be passed into main().
+ *
+ * NOTE: If argc is 0, then argv will be NULL.
+ */
argv = calloc (argc, sizeof (char*));
- if (argv)
- {
+ if (argv) {
int a;
command = cmdline;
argv[0] = command;
- for (a = 1; a < argc; a++)
- {
+ for (a = 1; a < argc; a++) {
command += strlen (command) + 1;
argv[a] = command;
}
- }
- else
+ } else
argc = 0;
}
}