From 60e5ea42e0ad3d4caa79ffc6699303045f13ccbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 15 Jan 2006 18:30:07 +0000 Subject: [PATCH] Quick fix for a crashing bug I just introduced. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15951 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/fs/fd.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/system/kernel/fs/fd.c b/src/system/kernel/fs/fd.c index 8acbea27df..805628d801 100644 --- a/src/system/kernel/fs/fd.c +++ b/src/system/kernel/fs/fd.c @@ -201,12 +201,13 @@ get_fd(struct io_context *context, int fd) if ((uint32)fd < context->table_size) descriptor = context->fds[fd]; - // Disconnected descriptors cannot be accessed anymore - if (descriptor->open_mode & O_DISCONNECTED) - descriptor = NULL; - - if (descriptor != NULL) // fd is valid - atomic_add(&descriptor->ref_count, 1); + if (descriptor != NULL) { + // Disconnected descriptors cannot be accessed anymore + if (descriptor->open_mode & O_DISCONNECTED) + descriptor = NULL; + else + atomic_add(&descriptor->ref_count, 1); + } mutex_unlock(&context->io_mutex);