summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2001-10-25 17:38:55 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2001-10-25 17:38:55 +0000
commit1af79634798aca7004564d68bd47d3810a40370b (patch)
tree478c0130a1743df75321b201432812ac73209917 /cpukit
parent2001-10-24 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-1af79634798aca7004564d68bd47d3810a40370b.tar.bz2
2001-10-25 Jennifer Averett <jennifer@OARcorp.com>
* libc/libio.c: Initialize more fields to NULL/0 during initialiation. * include/rtems/libio_.h: Fix freenode macro so it works for sockets which do not have the full set of filesystem operations and are initialized via something other than open().
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/include/rtems/libio_.h5
-rw-r--r--cpukit/libcsupport/include/rtems/libio_.h5
-rw-r--r--cpukit/libcsupport/src/libio.c18
3 files changed, 20 insertions, 8 deletions
diff --git a/cpukit/include/rtems/libio_.h b/cpukit/include/rtems/libio_.h
index 7e0f6df71e..6a4943be75 100644
--- a/cpukit/include/rtems/libio_.h
+++ b/cpukit/include/rtems/libio_.h
@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
- if ( (_node)->ops->freenod_h ) \
- (*(_node)->ops->freenod_h)( (_node) ); \
+ if ( (_node)->ops )\
+ if ( (_node)->ops->freenod_h ) \
+ (*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*
diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h
index 7e0f6df71e..6a4943be75 100644
--- a/cpukit/libcsupport/include/rtems/libio_.h
+++ b/cpukit/libcsupport/include/rtems/libio_.h
@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
- if ( (_node)->ops->freenod_h ) \
- (*(_node)->ops->freenod_h)( (_node) ); \
+ if ( (_node)->ops )\
+ if ( (_node)->ops->freenod_h ) \
+ (*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*
diff --git a/cpukit/libcsupport/src/libio.c b/cpukit/libcsupport/src/libio.c
index 1216ec15a5..f5cd36dbd9 100644
--- a/cpukit/libcsupport/src/libio.c
+++ b/cpukit/libcsupport/src/libio.c
@@ -206,10 +206,20 @@ rtems_libio_t *rtems_libio_allocate( void )
if (rc != RTEMS_SUCCESSFUL)
goto failed;
rtems_libio_iop_freelist = iop->data1;
- iop->data1 = 0;
- iop->flags = LIBIO_FLAGS_OPEN;
- iop->size = 0;
- iop->offset = 0;
+
+ iop->driver = NULL;
+ iop->size = 0;
+ iop->offset = 0;
+ iop->flags = LIBIO_FLAGS_OPEN;
+ iop->pathinfo.node_access = NULL;
+ iop->pathinfo.handlers = NULL;
+ iop->pathinfo.ops = NULL;
+ iop->pathinfo.mt_entry = NULL;
+ iop->data0 = 0;
+ iop->data1 = NULL;
+ iop->file_info = NULL;
+ iop->handlers = NULL;
+
goto done;
}