sched/env: Fix the return value of unsetenv()
If the environment variable does not exist, the function succeeds, as defined by POSIX.
This commit is contained in:
parent
cf91b403c9
commit
1b32fc1642
|
@ -61,23 +61,22 @@ int unsetenv(FAR const char *name)
|
|||
{
|
||||
FAR struct tcb_s *rtcb = this_task();
|
||||
FAR struct task_group_s *group = rtcb->group;
|
||||
int ret = OK;
|
||||
int idx;
|
||||
|
||||
DEBUGASSERT(name && group);
|
||||
|
||||
/* Check if the variable exists */
|
||||
|
||||
sched_lock();
|
||||
if (group && (ret = env_findvar(group, name)) >= 0)
|
||||
if (group && (idx = env_findvar(group, name)) >= 0)
|
||||
{
|
||||
/* It does! Remove the name=value pair from the environment. */
|
||||
|
||||
env_removevar(group, ret);
|
||||
ret = OK;
|
||||
env_removevar(group, idx);
|
||||
}
|
||||
|
||||
sched_unlock();
|
||||
return ret;
|
||||
return OK;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_DISABLE_ENVIRON */
|
||||
|
|
Loading…
Reference in New Issue