summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-03-09 14:13:22 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-03-14 09:04:40 +0100
commitf38caffa62c23ac04c2b88416dfe346b7ed81a9a (patch)
tree644f1afe8601543afcff682822a79b61f667e78a
parentcb648b75ffbad68947f1603ac66e8c9adb519ec0 (diff)
PR2039: Fix NULL pointer access
In case rtems_bdbuf_read() returns an error status, the block device buffer pointer will be set to NULL. In RFS the chain node of the block device buffer will be used for RFS purposes. We must not do this after an erroneous read.
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-buffer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-buffer.c b/cpukit/libfs/src/rfs/rtems-rfs-buffer.c
index 43fb586895..6c8ad8299b 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-buffer.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-buffer.c
@@ -166,8 +166,6 @@ rtems_rfs_buffer_handle_request (rtems_rfs_file_system* fs,
{
rc = rtems_rfs_buffer_io_request (fs, block, read, &handle->buffer);
- rtems_chain_set_off_chain (rtems_rfs_buffer_link(handle));
-
if (rc > 0)
{
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
@@ -175,6 +173,8 @@ rtems_rfs_buffer_handle_request (rtems_rfs_file_system* fs,
block, read ? "read" : "get", rc, strerror (rc));
return rc;
}
+
+ rtems_chain_set_off_chain (rtems_rfs_buffer_link(handle));
}
/*