diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-02-03 13:48:20 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-02-03 13:48:20 +0000 |
commit | 0066db82f921ad84a9017242396e37259f3d71f4 (patch) | |
tree | 13a8a1e51a818be68c2e178cbd2f55502d4e9971 /apps/nshlib | |
parent | bed10d9288e1c61599580049d63fe74873c08b37 (diff) | |
download | px4-nuttx-0066db82f921ad84a9017242396e37259f3d71f4.tar.gz px4-nuttx-0066db82f921ad84a9017242396e37259f3d71f4.tar.bz2 px4-nuttx-0066db82f921ad84a9017242396e37259f3d71f4.zip |
NSH needs to call pthread_detach() to avoid memory leak
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5601 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/nshlib')
-rw-r--r-- | apps/nshlib/nsh_parse.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/apps/nshlib/nsh_parse.c b/apps/nshlib/nsh_parse.c index 26b41e89b..4ee86b4cc 100644 --- a/apps/nshlib/nsh_parse.c +++ b/apps/nshlib/nsh_parse.c @@ -1426,8 +1426,10 @@ int nsh_parse(FAR struct nsh_vtbl_s *vtbl, char *cmdline) /* Free the redirected output file path */ - nsh_freefullpath(redirfile); - redirfile = NULL; + if (redirfile) + { + nsh_freefullpath(redirfile); + } /* Save the result: success if 0; failure if 1 */ @@ -1467,8 +1469,10 @@ int nsh_parse(FAR struct nsh_vtbl_s *vtbl, char *cmdline) /* Free the redirected output file path */ - nsh_freefullpath(redirfile); - redirfile = NULL; + if (redirfile) + { + nsh_freefullpath(redirfile); + } /* Save the result: success if 0; failure if 1 */ @@ -1596,6 +1600,12 @@ int nsh_parse(FAR struct nsh_vtbl_s *vtbl, char *cmdline) goto errout; } + /* Detach from the pthread since we are not going to join with it. + * Otherwise, we would have a memory leak. + */ + + (void)pthread_detach(thread); + nsh_output(vtbl, "%s [%d:%d]\n", cmd, thread, param.sched_priority); } else |