
                  FIPS 151-2 Documentation Audit

________________________________________________________________________________
POSIX.3.1  #  Allowable              FIPS 151-2 Audit Item                 Audit
Subclause     Resolution    
________________________________________________________________________________
1.3.1.1    1  D         POSIX.1 environment                                   _
1.3.1.2    2  D         name, number, and date of applicable POSIX.1 standard _
1.3.1.2    3  D,N       international software standards                      _ 
1.3.3      4  NA->N     C-language differences from C Standard                _
1.3.3.2    5  D         version of the C Standard supported                   _
1.3.3.3  GA1  NA->N     interface differences from C Standard                 _
1.3.3.3    6  NA->N     language binding differences from C Standard          _
2.2.2.4    1  D         associating appropriate privileges with a process     _
2.2.2.9    2  RD,N      char special files other than terminal device files   _
2.2.2.9    3  D,N       structures of character special files                 _
2.2.2.27   4  RD,N      other file types                                      _
2.2.2.30   5  D,N       criteria to assign process to file group class        _
2.2.2.55   6  D         parent process ID assigned after parent ended         _
2.2.2.57   7  D         interpret pathname that begins with two slashes       _
2.2.2.68   8  D,N       resources returned when process terminates            _
2.2.2.69   9  D         restrictions of interfaces on read-only file systems  -
2.2.2.83  10  RD,N      effective GID returned by getgroups()                 _
2.3.1      1  RD,N      extended security controls                            _
2.3.2      2  RD,N      additional and alternate file access controls         _
2.3.2      3  D,N       disabling alternate mechanism and chmod()             -
2.3.5      4  D,N       additional time-related update specifications         _
2.3.5      5  D,N       additional time-related update specifications         _
2.3.5      6  D,N       updating time-related fields                          _
2.4        1  RD,N      additional errors                                     _
2.4        2  D         reliable detection of [EFAULT]                        _
2.4        3  D         maximum file size allowed                             _
2.5        1  RD,N      additional type symbols ending in "_t"                _
2.6        1  RD,N      other characters used for environment variable names  _
2.7.2      1  RD,N      additional feature test macros                        _
2.8.3      1  D         limit for {NGROUPS_MAX} in <limits.h>                 _
2.8.4      2  D         run-time invariant values in <limits.h>               _
2.8.5      3  D         changeable values in <limits.h>                       _
2.9        1  D         values {_POSIX_JOB_CONTROL}, {_POSIX_SAVED_IDS}       _
2.9        2  RD,N      value of {_POSIX_CHOWN_RESTRICTED} in <unistd.h>      _
2.9        3  RD,N      value of {_POSIX_NO_TRUNC} in <unistd.h>              _
2.9        4  RD,N      value of {_POSIX_VDISABLE} in <unistd.h>              _
2.9.4      5  RD        {_POSIX_CHOWN_RESTRICTED} value in <unistd.h>         _
2.9.4      6  RD        {_POSIX_NO_TRUNC} value in <unistd.h>                 _
2.9.4      7  RD        {_POSIX_VDISABLE} value in <unistd.h>                 _
3.1.1.2    1  RD,N      share open directory streams between parent and child _
3.1.1.2    2  D,N       inheritance of process characteristics for fork()     _
3.1.1.4    3  RD,N      [ENOMEM] detection for fork()                         _
3.1.2.2    1  D         execlp() or execvp() results on search without PATH   _
3.1.2.2    2  D,N       inheritance of process characteristics for exec       _
3.1.2.2    3  D,N       st_atime marked for update when exec fails            _
3.1.2.4    4  RD,N      execution of irregular files                          _
3.1.2.4    5  RD,N      ENOMEM] detection exec                                _
3.2.1.1.2  1  D,N       order reporting status for two or more child procs    _
3.2.1.1.3  2  D,N       additional circumstances for reporting status         _
3.2.1.1.4  3  D,N       status provided by wait() or waitpid() is [EINTR]     _
3.2.2.1    1  NA->N     result type for function _exit()                      _
3.2.2.2    2  D         parent proc ID assigned to child of terminated proc   _
3.3.1.1    1  NA->N     support of {_POSIX_JOB_CONTROL} signals               _
3.3.1.1    2  RD,N      additional signals supported                          _
3.3.1.2    3  D,N       action taken on blocked signal when action is SIG_IGN _
3.3.1.2    4  D         sig delivered more than once if another sig pending   _
3.3.1.2    5  D,N       delivery of multiple pending signals to process       _
3.3.1.2    6  D         details outside of POSIX.1 on generating signals      _
3.3.1.3    7  D,N       SIGFPE, SIGILL, or SIGSEGV signal ignored             _
3.3.1.3    8  D,N       action taken for SIGCHLD to SIG_IGN                   _
3.3.1.3    9  D,N       action SIGFPE/SIGILL/SIGSEGV not from kill()/raise()  _
3.3.1.3   10  D,N       caught SIGCHLD signal and unwaited term child proc    _
3.3.1.3   11  D,N       interrupted unsafe function calls an unsafe function  _
3.3.2.2    1  RD,N      send signals to processes of another user ID          _
3.3.2.2    2  D,N       excluded set of system processes when pid is 0        _
3.3.2.2    3  D,N       behavior of kill() when pid is -1                     _
3.3.2.2    4  D,N       excluded system procs when pid is negative but not -1 _
3.3.2.2    5  D,N       restrictions on sending of non-POSIX.1 signals        _
3.3.3.1.2  1  D,N       sigset_t not initialized, pointer to object supplied  _
3.3.3.3.4  1  RD,N      [EINVAL] detection for sigaddset()                    _
3.3.3.4.4  1  RD,N      [EINVAL] detection for sigdelset()                    _
3.3.3.5.4  1  RD,N      [EINVAL] detection for sigismember()                  _
3.3.4.2    1  D,N       action taken by sigaction() when setup by signal()    _
3.3.4.2    2  D,N       set action SIG_DFL for signal that cannot be ignored  _
3.3.5.2    1  D,N       SIGFPE, SIGILL, or SIGSEGV generated while blocked    _
3.3.6.4    1  RD,N      error conditions detected for sigpending()            _
3.4.3.2    1  D,N       SIGALRM generated during sleep() ignored or blocked   _
3.4.3.2    2  D,N       SIGALRM is blocked from delivery                      _
3.4.3.2    3  D,N       SIGALRM is not blocked or ignored                     _
3.4.3.2    4  D,N       time, action, mask SIGALARM interrupting sleep()      _
3.4.3.2    5  D,N       sleep() interrupted, siglongjmp() or longjmp() called _
4.2.2.1.2  1  RD        appro privs to change real, effective, saved setuids  _
4.2.2.2.2  1  RD        appro privs to change real and effective group IDs    _
4.2.3.2    1  D,N       array entries and returned value from getgroups()     _
4.2.4.3    1  D,N       return value from getlogin() possibly overwritten     _
4.2.4.4    2  S->D,N,d  error conditions detected for getlogin()              _
4.3.3.2    1  NA->N     support for setpgid()                                 _
4.4.1.2    1  D         format of struct utsname members                      _
4.4.1.4    2  RD,N      error conditions detected for uname()                 _
4.5.1.4    1  RD,N      error conditions detected for time()                  _
4.5.2.3    1  D,N       return value from times() overflow range type clock_t _
4.5.2.4    2  RD,N      error conditions detected for times()                 _
4.6.1.3    1  D,N       return value from getenv() possibly overwritten       _
4.6.1.4    2  RD,N      error conditions detected for getenv()                _
4.7.1.3    1  D,N       return value from ctermid() possibly overwritten      _
4.7.1.4    2  RD,N      error conditions detected for ctermid()               _
4.7.2.1.2  1  D,N       return value from ttyname() possibly overwritten      _
4.7.2.1.4  2  RD,N      error conditions detected for ttyname()               _
4.7.2.2.4  1  RD,N      error conditions detected for isatty()                _
4.8.1.2    1  D,N       additional configuration system variables             _
5.1.1      1  D,N       internal format of directories                        _
5.1.1      2  D,N       size of array d_name                                  _
5.1.2.1.2  1  D,N       file removed or added after opendir()                 _
5.1.2.1.4  2  RD,N      [EMFILE] detection for opendir()                      _
5.1.2.1.4  3  RD,N      [ENFILE] detection for opendir()                      _
5.1.2.2.2  1  D,N       return value from readdir() possibly overwritten      _
5.1.2.2.2  2  D,N       readdir() buffers directory entries per read function _
5.1.2.2.2  3  D,N       using directory stream after exec type function call  _
5.1.2.2.2  4  D,N       parent and child call readdir()                       _
5.1.2.2.4  5  D,N       passing a closed dirp argument to readdir()           _
5.1.2.2.4  6  RD,N      [EBADF] detection for readdir()                       _
5.1.2.3.1  1  NA->N     result type for readdir()                             _
5.1.2.3.2  2  D,N       removing and adding entries to a directory            _
5.1.2.3.2  3  D,N       passing a closed dirp argument to rewinddir()         _
5.1.2.4.2  4  D,N       child/parent procs both using readdir()/rewinddir()   _
5.1.2.4.2  1  D,N       access of object type DIR after call to closedir()    _
5.1.2.4.2  2  D,N       passing a closed dirp argument to closedir()          _
5.1.2.4.4  3  RD,N      [EBADF] detection for closedir()                      _
5.2.2.2    1  D,N       behavior of getcwd() when buf is a NULL pointer       _
5.2.2.3    2  D,N       contents of buffer passed to getcwd() after an error  _
5.2.2.4    3  RD,N      [EACCES] detection for getcwd()                       _
5.3.1.2    1  D,N       call to open() on a FIFO with O_RDWR set              _
5.3.1.2    2  D         group ID of new file set to group ID of its directory _
5.3.1.2    3  D,N       open() with O_CREAT and bits other than mode bits set _
5.3.1.2    4  D,N       open() with O_EXCL and O_CREAT not set                _
5.3.1.2    5  D,N       block/character supports nonblocking/O_NONBLOCK set   _
5.3.1.2    6  D,N       path not block/character/FIFO, supports nonblocking   _
5.3.1.2    7  D         O_TRUNC file types other than regular/FIFO/terminal   _
5.3.1.2    8  D,N       open() with O_TRUNC and O_RDONLY set                  _
5.3.3.2    1  D         bits other than file permission bits in umask() arg   _
5.3.4.2    1  RD,N,d    link() across file systems                            _
5.3.4.2    2  RD,N      appropriate privileges to link to a directory         _
5.3.4.2    3  RD,N,d    link() to directory                                   _
5.3.4.2    4  RD,N      access permission to access file for link() success   _
5.4.1.2    1  D         mkdir() bits other than permission bits set in mode   _
5.4.1.2    2  D         group ID of new file set to group ID of its directory _
5.4.2.2    1  D         mkfifo() bits other than permission bits set in mode  _
5.4.2.2    2  D         group ID of new file set to group ID of its directory _
5.5.1.2    1  D         appropriate privileges for unlinking directories      _
5.5.1.2    2  RD,N      support for unlink() on directories                   _
5.5.1.4    3  RD,N      [EBUSY] detection for unlink()                        _
5.5.2.2    1  RD,N      rmdir(path) succeeds, path root or current directory  _
5.5.2.2    2  RD,N      rmdir(path) fails, path root or current directory     _
5.5.2.4    3  RD,N      [EBUSY] detection for rmdir()                         _
5.5.3.2    1  RD,N,d    requires write permission to rename directory         _
5.5.3.4    2  RD,N      [EBUSY] detection for rename()                        _
5.6.1      1  D,N       field st_size in structure of stat() and fstat()      _
5.6.1.2    2  D,N       ORs bits other than specified into st_mode field ...  _
5.6.2.1.2  1  D,N       add/alt access control mechanisms cause stat() fail   _
5.6.2.2.2  1  D,N       add/alt access control mechanisms cause fstat() fail  _
5.6.3.2    1  RD,N      app priv to override file access control mechanism    _
5.6.3.2    2  D,N       app priv ... none of execute bits for path are set    _
5.6.3.4    3  RD,N      [EINVAL] detection for access()                       _
5.6.4.2    1  RD,N      appropriate privileges to change file mode            _
5.6.4.2    2  RD,N      ignore S_ISUID or S_ISGID bits                        _
5.6.4.2    3  D         file descriptors for files open at chmod() time       _
5.6.5.2    1  RD,N      appropriate privileges to change file owner           _
5.6.5.2    2  RD,N      effect of S_ISUID and S_ISGID bits on the file        _
5.6.5.4    3  RD,N      [EINVAL] detection for chown()                        _
5.6.6.2    1  D,N       additional members of utimbuf structure               _
5.7.1.1.2  1  D,N       additional configurable pathname variables            _
5.7.1.1.2  2  D,N       association of ... with other than a terminal file    _
5.7.1.1.2  3  D,N       ... with file types other than a directory            _
5.7.1.1.2  4  D,N       ... with file types other than pipe, FIFO, directory  _
5.7.1.1.4  5  RD,N      [EINVAL] detection for pathconf()                     _
5.7.1.1.4  6  RD,N      [EACCESS] detection for pathconf()                    _
5.7.1.1.4  7  RD,N      [ENAMETOOLONG] detection for pathconf()               _
5.7.1.1.4  8  RD,N      [ENOENT] detection for pathconf()                     _
5.7.1.1.4  9  RD,N      [ENOTDIR] detection for pathconf()                    _
5.7.1.2.2  1  D,N       association of ... with other than a terminal file    _
5.7.1.2.2  2  D,N       ... with file types other than a directory            _
5.7.1.2.2  3  D,N       ... with file types other than pipe, FIFO, directory  _
5.7.1.2.4  4  RD,N      [EBADF] detection for fpathconf()                     _
5.7.1.2.4  5  RD,N      [EINVAL] detection for fpathconf()                    _
6.3.1.2    1  D,N       when close() is interrupted by a signal               _
6.4.1.2    1  D,N       value file offset after read() not capable of seeking _
6.4.1.2    2  D         read() interrupted after reading some data            _
6.4.1.2    3  D         subsequent reads after read() returns end-of-file     _
6.4.1.2    4  D         read() with value greater than {SSIZE_MAX}            _
6.4.1.4    5  D,N       additional conditions for detecting [EIO] for read()  _
6.4.2.2    1  D,N       write() when nbyte is zero and not a regular file     _
6.4.2.2    2  D,N       file offset after write() on file not capable of seek _
6.4.2.2    3  D         write() interrupted after writing some data           _
6.4.2.2    4  D         write() with value greater than {SSIZE_MAX}           _
6.4.2.4    5  D,N       additional conditions for detecting [EIO] for write() _
6.5.2.2    1  D,N       additional file status flags for F_SETFL for fcntl()  _
6.5.2.2    2  D,N,d     advisory record locking for files other than regular  _
6.5.2.2    3  D,N       fcntl() for file locking when l_len is negative       _
6.5.2.4    4  RD,N      [EDEADLK] detected for fcntl()                        _
6.5.3.2    1  D         behavior of lseek() on devices incapable of seeking   _
7.1        1  D         device type support by general terminal interface ... _
7.1.1.2    2  D,N       terminal has foreground process group when ...        _
7.1.1.3    3  D         session leader without a controlling terminal ...     _
7.1.1.3    4  D,N       close last file descriptor, controlling terminal ...  _
7.1.1.3    5  D,N       session leader reacquire controlling terminal ...     _
7.1.1.3    6  D,N,d     after controlling process terminates access ...       _
7.1.1.3    7  D         allocated of controlling terminal by session leader   _
7.1.1.5    8  D,N       {MAX_INPUT} limit                                     _
7.1.1.6    9  D,N       {MAX_CANON} limit                                     _
7.1.1.7   10  D,N       read() response when MIN is greater than {MAX_INPUT}  _
7.1.1.8   11  RD,N,d    buffers write output to terminal device               _
7.1.1.9   12  RD,N,d    START and STOP special characters can be changed      _
7.1.1.9   13  D,N       two or more special chars received have same value    _
7.1.1.9   14  D,N       single bytes ... or multibytes have special meaning   _
7.1.1.10  15  D,N       EOF returned or [EIO] detected on modem disconnect    _
7.1.2.1    1  D,N       additional members of termios structure               _
7.1.2.2    2  D         break condition for non-asynchronous data xmissions   _
7.1.2.2    3  D         conditions under which START and STOP are transmitted _
7.1.2.2    4  D         initial input control value after open() is specified _
7.1.2.3    5  D         processing of output data by OPOST                    _
7.1.2.3    6  D         initial output control value after open() specified   _
7.1.2.4    7  D,N       non-asynchronous serial connection ignoring hdw modes _
7.1.2.4    8  D         initial hardware control value after open() specified _
7.1.2.5    9  D,N       echoing details when no character exists to erase     _
7.1.2.5   10  D,N       details on erasing a line when ECHOK and ICANON set   _
7.1.2.5   11  D,N,d     details on operation when IEXTEN is set               _
7.1.2.5   12  D         interaction IEXTEN set with ICANON, ISIG, IXON, IXOFF _
7.1.2.5   13  D         initial local control value after open() is specified _
7.1.2.6   14  NA->N     implementation ignores ...                            _
7.1.2.6   15  D,N       value of NCCS                                         _
7.1.2.6   16  D,N       character values c_cc indexed by START/STOP ignored   _
7.1.2.6   17  D         initial values of all control characters              _
7.1.3.1.4  1  RD,N      error detection cfgetospeed()                         _
7.1.3.2.2  1  RD,N      cfsetospeed() details setting unsupported baud rate   _
7.1.3.2.4  2  RD,N      error conditions  detected for cfsetospeed()          _
7.1.3.2.4  1  RD,N      error conditions  detected for cfgetispeed()          _
7.1.3.4.2  1  RD,N      cfsetispeed() returns error for unsupported baud rate _
7.1.3.4.4  2  RD,N      error conditions detected for cfsetispeed()           _
7.2.1.1.2  1  RD,N      input and output baud rates that differ               _
7.2.2.1.2  1  D         period time break signal sent when tcsendbreak() ...  _
7.2.2.1.2  2  D,N       non-asynchronous data transmission and tcsendbreak()  _
7.2.3.2    1  NA->N     support for tcgetpgrp()                               _
7.2.4.2    1  NA->N     support for tcsetpgrp()                               _
8.1        1  NA->N     differences from C Standard                           _
8.1.3.2    1  RD,N      other locales other than ``C''                        _
8.1.3.2    2  D,N       string returned from setlocale(), locale NULL pointer _
8.1.3.2    3  D,N       additional categories supported for setlocale()       _
8.1.3.2    4  D         LC_ALL not set or set to the empty string ...         _
8.1.6.1    1  NA->N     result type for longjmp()                             _
8.1.7.1    1  NA->N     result type for clearerr()                            _
8.1.36.1   1  NA->N     result type for rewind()                              _
8.1.40.1   1  NA->N     result type for setbuf()                              _
8.1.47.1   1  NA->N     result type for srand()                               _
8.1.48.1   1  NA->N     result type calloc(), free(), malloc(), and realloc() _
8.1.49.1   1  NA->N     result type for abort()                               _
8.1.50.1   1  NA->N     result type for exit()                                _
8.1.52.1   1  NA->N     result type for bsearch() and qsort()                 _
8.1.56.1   1  D         details TZ environment variable beginning with colon  _
8.1.56.1   2  D,N       meanings of any characters except ...                 _
8.1.56.1   3  D,N       behavior offset field of TZ environment variable ...  _
8.2.1.4    1  RD,N      error conditions detected for fileno()                _
8.2.2.2    1  D,N       additional values for the fdopen() type argument      _
8.2.2.4    2  RD,N      error conditions detected for fdopen()                _
8.2.3      1  D,N       details involving two or more handles                 _
8.2.3      2  D,N       open file description active hndl not accessible ...  _
8.2.3      3  D,N       details on rules when file handles are not followed   _
8.2.3      4  D         conditions applications see all input exactly once    _
8.2.3      5  D,N       ftell() result, stream oppened in append mode ...     _
8.3.1.2.1  1  NA->N     result type for siglongjmp()                          _
8.3.2.1    1  NA->N     result type for tzset()                               _
8.3.2.2    2  D         TZ absent, default time-zone info used by tzset()     _
9.1        1  D         interpretation null initial working directory field   _
9.1        2  D         system deflt value, null initial user program field   _
9.2.1.1.3  1  D,N       return pointer from getgrgid() possibly overwritten   _
9.2.1.1.4  2  RD,N      error conditions detected for getgrgid()              _
9.2.1.2.3  1  D,N       return pointer from getgrnam() possibly overwritten   _
9.2.1.2.4  2  RD,N      error conditions detected for getgrnam()              _
9.2.2.1.3  1  D,N       return pointer from getpwuid() possibly overwritten   _
9.2.2.1.4  2  RD,N      error conditions detected for getpwuid()              _
9.2.2.2.3  1  D,N       return pointer from getpwnam() possibly overwritten   _
9.2.2.2.4  2  RD,N      error conditions detected for getpwnam()              _
10.1       1  D         interface to format-creating/reading utilities        _
10.1       2  D,N       media format/frames on media in which data appears    _
10.1.1     1  D,N       tape contents after two zero-filled end-of-archive    _
10.1.1     2  D,N       encoding of names outside portable filename char set  _
10.1.1     3  D         procedures for handling input of invalid file names   _
10.1.1     4  D,N       format-reading details on mode bits not in POSIX.1    _
10.1.1     5  D,N       typeflag field settings of CHARTYPE/BLKTYPE/FIFOTYPE  _
10.1.1     6  D,N       devmajor and devminor fields                          _
10.1.2.1   1  D,N       values for the c_dev and c_ino fields                 _
10.1.2.1   2  D         character or block special files contained in c_rdev  _
10.1.2.2   3  D         procedures for handling input of invalid file names   _
10.1.2.4   4  D,N       c_filesize, files other than FIFO/directory/trailer   _
10.1.2.4   5  D,N       contents of bytes last block following TRAILER!!!     _
10.1.2.5   6  D,N       str/extr file types other C_ISDIR/C_ISFIFO/C_ISREG    _
10.1.3     7  D         file read as next file after end-of-file/end-of-media _
