unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (NetBSD-6.1.5)
Page:
Section:
Apropos / Subsearch:
optional field

SSP(3)                     Library Functions Manual                     SSP(3)

NAME
     ssp -- bounds checked libc functions

LIBRARY
     Buffer Overflow Protection Library (libssp, -lssp)

SYNOPSIS
     #include <&lt;ssp/stdio.h>&gt;

     int
     sprintf(char *str, const char *fmt, ...);

     int
     vsprintf(char *str, const char *fmt, va_list ap);

     int
     snprintf(char *str, size_t len, const char *fmt, ...);

     int
     vsnprintf(char *str, size_t len, const char *fmt, va_list ap);

     char *
     gets(char *str);

     char *
     fgets(char *str, int len, FILE *fp);

     #include <&lt;ssp/string.h>&gt;

     void *
     memcpy(void *str, const void *ptr, size_t len);

     void *
     memmove(void *str, const void *ptr, size_t len);

     void *
     memset(void *str, int val, size_t len);

     char *
     strcpy(char *str, const char *ptr, size_t len);

     char *
     strcat(char *str, const char *ptr, size_t len);

     char *
     strncpy(char *str, const char *ptr, size_t len);

     char *
     strncat(char *str, const char *ptr, size_t len);

     #include <&lt;ssp/strings.h>&gt;

     void *
     bcopy(const void *ptr, void *str, size_t len);

     void *
     bzero(void *str, size_t len);

     #include <&lt;ssp/unistd.h>&gt;

     ssize_t
     read(int fd, void *str, size_t len);

     int
     readlink(const char * restrict path, char * restrict str, size_t len);

     int
     getcwd(char *str, size_t len);

DESCRIPTION
     When _FORTIFY_SOURCE bounds checking is enabled as described below, the
     above functions get overwritten to use the __builtin_object_size(3)
     function to compute the size of str, if known at compile time, and
     perform bounds check on it in order to avoid data buffer or stack buffer
     overflows.  If an overflow is detected, the routines will call abort(3).

     To enable these function overrides the following should be added to the
     gcc(1) command line: ``-I/usr/include/ssp'' to override the standard
     include files and ``-D_FORTIFY_SOURCE=1'' or ``-D_FORTIFY_SOURCE=2''.

     If _FORTIFY_SOURCE is set to 1 the code will compute the maximum possible
     buffer size for str, and if set to 2 it will compute the minimum buffer
     size.

SEE ALSO
     gcc(1), __builtin_object_size(3), stdio(3), string(3), security(7)

HISTORY
     The ssp library appeared NetBSD 4.0.

NetBSD 6.1.5                    March 21, 2011                    NetBSD 6.1.5