Files
Christian Mauderer fc89cc7680 imfs: Fix index underrun when extending empty file
Currently the following sequence causes a endless loop when extending an
IMFS file:

- Create a file with zero length and close it.
- Make sure nearly no allocatable memory is left.
- Open the file and write enough data into it that more than the
  remaining memory will be used.

In that case when extending the IMFS file, the file currently need zero
blocks. If allocating enough new blocks fails, the already allocated new
blocks will be freed again.

The comparison of block>=old_blocks that has been used prior to this
patch compared two unsigned numbers. If old_blocks was zero, the
comparison of these two numbers always evaluated to true.

This patch frees the last block in a separate step to avoid this
problem.

Fixes #4638
2022-04-07 10:39:50 +02:00
..

This directory contains for the "file system" library. All supported
file systems live under this tree.

Currently the supported file systems in this library are:

- IMFS or In Memory File System

   This is the only root file system on RTEMS at the moment. It supports
   files, directories, device nodes and mount points. It can also be
   configured to be the miniIMFS.

- TFTP and FTP filesystem are part of the libnetworking library.

- DEVFS or Device File system

- DOSFS, a FAT 12/16/32 MSDOS compatible file system.

- NFS Client, can mount NFS exported file systems.

- PIPE, a pipe file system.

- RFS, The RTEMS File System.

--Chris Johns and Joel Sherrill
  17 Feb 2010