changeset 1560:9a0206637430

* src/fd.cxx: Added CYG_ASSERT bound checking for file descriptor numbers (0<fd<CYGNUM_FILEIO_NFD).
author asl
date Mon, 29 Mar 2004 13:19:42 +0000
parents c72a9120513b
children 31dd38f564ec
files packages/io/fileio/current/ChangeLog packages/io/fileio/current/src/fd.cxx
diffstat 2 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/packages/io/fileio/current/ChangeLog
+++ b/packages/io/fileio/current/ChangeLog
@@ -1,3 +1,8 @@
+2004-03-25  Sebastien Couret  <sebastien.couret@elios-informatique.fr>
+
+	* src/fd.cxx: Added CYG_ASSERT bound checking for file descriptor
+	numbers (0<fd<CYGNUM_FILEIO_NFD).
+
 2004-03-12  Jonathan Larmour  <jifl@eCosCentric.com>
 
 	* src/fio.h: If no POSIX then CYG_FILEIO_DELIVER_SIGNALS
--- a/packages/io/fileio/current/src/fd.cxx
+++ b/packages/io/fileio/current/src/fd.cxx
@@ -175,7 +175,11 @@ static int fp_ucount_dec( cyg_file *fp )
 static int fd_close( int fd )
 {
     int error = 0;
-    cyg_file *fp = desc[fd];
+    cyg_file *fp;
+
+    CYG_ASSERT(((0 < fd) && (fd<CYGNUM_FILEIO_NFD)), "fd out of range");    
+
+    fp = desc[fd];
 
     if( fp != FD_ALLOCATED && fp != NULL)
     {
@@ -202,6 +206,8 @@ static int fd_close( int fd )
 {
     int fd;
 
+    CYG_ASSERT(((0 < low) && (low<CYGNUM_FILEIO_NFD)),"fd out of range");
+
     FILEIO_MUTEX_LOCK(fdlock);
     
     for( fd = low; fd < CYGNUM_FILEIO_NFD; fd++ )
@@ -226,6 +232,9 @@ static int fd_close( int fd )
 
 __externC void cyg_fd_assign(int fd, cyg_file *fp)
 {
+
+    CYG_ASSERT(((0 < fd) && (fd<CYGNUM_FILEIO_NFD)),"fd out of range");
+
     FILEIO_MUTEX_LOCK(fdlock);
 
     fd_close( fd );
@@ -243,6 +252,8 @@ static int fd_close( int fd )
 __externC int cyg_fd_free(int fd)
 {
     int error;
+
+    CYG_ASSERT(((0 < fd) && (fd<CYGNUM_FILEIO_NFD)),"fd out of range");
     
     FILEIO_MUTEX_LOCK(fdlock);
     
@@ -266,6 +277,8 @@ static int fd_close( int fd )
 
 __externC cyg_file *cyg_fp_get( int fd )
 {
+    CYG_ASSERT(((0 < fd) && (fd<CYGNUM_FILEIO_NFD)),"fd out of range");
+
     FILEIO_MUTEX_LOCK(fdlock);
     
     cyg_file *fp = desc[fd];