FreeBSD Manual Pages
SSP(3) BSD Library Functions Manual SSP(3) NAME ssp -- bounds checked libc functions LIBRARY Buffer Overflow Protection Library (libssp, -lssp) SYNOPSIS #include <ssp/stdio.h> 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 <ssp/string.h> 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 <ssp/strings.h> void * bcopy(const void *ptr, void *str, size_t len); void * bzero(void *str, size_t len); #include <ssp/unistd.h> 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) func- tion 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 over- flows. 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 in- clude 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. BSD March 21, 2011 BSD
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ssp&sektion=3&manpath=NetBSD+6.0>