diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-03-15 15:02:41 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-03-15 15:02:41 +0000 |
commit | d252351c43e32c6a1913f38476404db4a35f61a4 (patch) | |
tree | 5a0283ff2c2b6433b6b270f722529af6524abf1a /cpukit/libmisc | |
parent | 2011-03-15 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-d252351c43e32c6a1913f38476404db4a35f61a4.tar.bz2 |
2011-03-15 Joel Sherrill <joel.sherrill@oarcorp.com>
* libmisc/shell/main_setenv.c: Address Coverity issue 134 which
recommends using strnXXX methods.
Diffstat (limited to 'cpukit/libmisc')
-rw-r--r-- | cpukit/libmisc/shell/main_setenv.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/cpukit/libmisc/shell/main_setenv.c b/cpukit/libmisc/shell/main_setenv.c index 5b7c92920f..eb47dddaa8 100644 --- a/cpukit/libmisc/shell/main_setenv.c +++ b/cpukit/libmisc/shell/main_setenv.c @@ -16,6 +16,13 @@ #include <rtems/shell.h> #include "internal.h" +/* + * Limit examining or copying more than 256 characters at a time. + * Yes, this is very arbitrary. If there are POSIX constants, then + * they should be used. + */ +#define MAX 156 + int rtems_shell_main_setenv(int argc, char *argv[]) { char* env = NULL; @@ -32,7 +39,7 @@ int rtems_shell_main_setenv(int argc, char *argv[]) env = argv[1]; for (arg = 2; arg < argc; arg++) - len += strlen(argv[arg]); + len += strnlen(argv[arg], MAX); len += argc - 2 - 1; @@ -44,8 +51,8 @@ int rtems_shell_main_setenv(int argc, char *argv[]) } for (arg = 2, p = string; arg < argc; arg++) { - strcpy(p, argv[arg]); - p += strlen(argv[arg]); + strncpy(p, argv[arg], MAX); + p += strnlen(argv[arg], MAX); if (arg < (argc - 1)) { *p = ' '; p++; |