summaryrefslogtreecommitdiff
path: root/nuttx/libc/spawn/lib_ps.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-11 16:53:44 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-11 16:53:44 +0000
commit7272d1e7473fc1ce1d0a29c7287260402ca2420e (patch)
tree46e6b528a6ace37a9ec35f2e4c1d7d3fe8b510f5 /nuttx/libc/spawn/lib_ps.c
parent8b26f2afdf93273f95e24840b68df485f971f89a (diff)
downloadnuttx-7272d1e7473fc1ce1d0a29c7287260402ca2420e.tar.gz
nuttx-7272d1e7473fc1ce1d0a29c7287260402ca2420e.tar.bz2
nuttx-7272d1e7473fc1ce1d0a29c7287260402ca2420e.zip
Various changes while debugging posix_spawn
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5510 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/libc/spawn/lib_ps.c')
-rw-r--r--nuttx/libc/spawn/lib_ps.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/nuttx/libc/spawn/lib_ps.c b/nuttx/libc/spawn/lib_ps.c
index 7509d6737..a6a0590d4 100644
--- a/nuttx/libc/spawn/lib_ps.c
+++ b/nuttx/libc/spawn/lib_ps.c
@@ -357,7 +357,7 @@ static int spawn_proxy(int argc, char *argv[])
{
FAR struct spawn_general_file_action_s *entry;
FAR const posix_spawnattr_t *attr = g_ps_parms.attr;
- int ret;
+ int ret = OK;
/* Perform file actions and/or set a custom signal mask. We get here only
* if the file_actions parameter to posix_spawn[p] was non-NULL and/or the
@@ -365,10 +365,10 @@ static int spawn_proxy(int argc, char *argv[])
*/
#ifndef CONFIG_DISABLE_SIGNALS
- DEBUGASSERT(g_ps_parms.file_actions ||
+ DEBUGASSERT((g_ps_parms.file_actions && *g_ps_parms.file_actions) ||
(attr && (attr->flags & POSIX_SPAWN_SETSIGMASK) != 0));
#else
- DEBUGASSERT(g_ps_parms.file_actions);
+ DEBUGASSERT(g_ps_parms.file_actions && *g_ps_parms.file_actions);
#endif
/* Check if we need to change the signal mask */
@@ -553,9 +553,10 @@ int posix_spawn(FAR pid_t *pid, FAR const char *path,
*/
#ifndef CONFIG_DISABLE_SIGNALS
- if (!file_actions && (attr->flags & POSIX_SPAWN_SETSIGMASK) == 0)
+ if ((file_actions == NULL || *file_actions == NULL) &&
+ (attr == NULL || (attr->flags & POSIX_SPAWN_SETSIGMASK) == 0))
#else
- if (!file_actions)
+ if (file_actions == NULL || *file_actions == NULL)
#endif
{
return ps_exec(pid, path, attr, argv);
@@ -601,7 +602,7 @@ int posix_spawn(FAR pid_t *pid, FAR const char *path,
proxy = TASK_CREATE("spawn_proxy", param.sched_priority,
CONFIG_POSIX_SPAWN_STACKSIZE, (main_t)spawn_proxy,
- (const char **)NULL);
+ (FAR const char **)NULL);
if (proxy < 0)
{
int errcode = errno;