diff options
-rw-r--r-- | cpukit/libfs/src/pipe/fifo.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/cpukit/libfs/src/pipe/fifo.c b/cpukit/libfs/src/pipe/fifo.c index 71d5f8598a..3275e5f1fd 100644 --- a/cpukit/libfs/src/pipe/fifo.c +++ b/cpukit/libfs/src/pipe/fifo.c @@ -149,18 +149,15 @@ static int pipe_new( pipe = *pipep; if (pipe == NULL) { err = pipe_alloc(&pipe); - if (err) - goto out; + if (err) { + pipe_unlock(); + return err; + } } PIPE_LOCK(pipe); - if (*pipep == NULL) { - if (err) - pipe_free(pipe); - else - *pipep = pipe; - } + *pipep = pipe; out: pipe_unlock(); |