diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-08-28 20:10:00 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-08-28 20:10:00 +0000 |
commit | 8cb97f594f0fcec84e06feafde6a3dd7dea1cb39 (patch) | |
tree | 930fbf83bcc0cf3b868f9142b3122c1b3889cb2f /cpukit | |
parent | Just comment out line. (diff) | |
download | rtems-8cb97f594f0fcec84e06feafde6a3dd7dea1cb39.tar.bz2 |
2010-08-28 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1694/shell
* libmisc/shell/main_setenv.c: Address memory leak identified by
Coverity.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/ChangeLog | 6 | ||||
-rw-r--r-- | cpukit/libmisc/shell/main_setenv.c | 31 |
2 files changed, 20 insertions, 17 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index bed41b7680..6cfceebccc 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,9 @@ +2010-08-28 Joel Sherrill <joel.sherrill@oarcorp.com> + + PR 1694/shell + * libmisc/shell/main_setenv.c: Address memory leak identified by + Coverity. + 2010-08-28 Joel Sherrill <joel.sherrilL@OARcorp.com> * libfs/src/pipe/pipe.c: Remove unreachable line flagged by Coverity as diff --git a/cpukit/libmisc/shell/main_setenv.c b/cpukit/libmisc/shell/main_setenv.c index a682f19394..5b7c92920f 100644 --- a/cpukit/libmisc/shell/main_setenv.c +++ b/cpukit/libmisc/shell/main_setenv.c @@ -24,44 +24,41 @@ int rtems_shell_main_setenv(int argc, char *argv[]) int arg; char* p; - if (argc <= 2) - { - printf ("error: no variable or string\n"); + if (argc <= 2) { + printf("error: no variable or string\n"); return 1; } env = argv[1]; for (arg = 2; arg < argc; arg++) - len += strlen (argv[arg]); + len += strlen(argv[arg]); len += argc - 2 - 1; - string = malloc (len + 1); + string = malloc(len + 1); - if (!string) - { - printf ("error: no memory\n"); + if (!string) { + printf("error: no memory\n"); return 1; } - for (arg = 2, p = string; arg < argc; arg++) - { - strcpy (p, argv[arg]); - p += strlen (argv[arg]); - if (arg < (argc - 1)) - { + for (arg = 2, p = string; arg < argc; arg++) { + strcpy(p, argv[arg]); + p += strlen(argv[arg]); + if (arg < (argc - 1)) { *p = ' '; p++; } } - if (setenv (env, string, 1) < 0) - { - printf ("error: %s\n", strerror (errno)); + if (setenv(env, string, 1) < 0) { + printf( "error: %s\n", strerror(errno) ); + free( string ); return 1; } + free( string ); return 0; } |