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)
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.
BSD
March 21, 2011 BSD
Check Out this Related Man Page
PRINTF_L(3) BSD Library Functions Manual PRINTF_L(3)
NAME
asprintf_l, dprintf_l, fprintf_l, printf_l, snprintf_l, sprintf_l, vasprintf_l, vdprintf_l, vfprintf_l, vprintf_l, vsnprintf_l, vsprintf_l --
formatted output conversion
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
#include <xlocale.h>
int
asprintf_l(char **ret, locale_t loc, const char *format, ...);
int
dprintf_l(int fd, locale_t loc, const char * restrict format, ...);
int
fprintf_l(FILE * restrict stream, locale_t loc, const char * restrict format, ...);
int
printf_l(locale_t loc, const char * restrict format, ...);
int
snprintf_l(char * restrict str, size_t size, locale_t loc, const char * restrict format, ...);
int
sprintf_l(char * restrict str, locale_t loc, const char * restrict format, ...);
#include <stdarg.h>
#include <xlocale.h>
int
vasprintf_l(char **ret, locale_t loc, const char *format, va_list ap);
int
vdprintf_l(int fd, locale_t loc, const char * restrict format, va_list ap);
int
vfprintf_l(FILE * restrict stream, locale_t loc, const char * restrict format, va_list ap);
int
vprintf_l(locale_t loc, const char * restrict format, va_list ap);
int
vsnprintf_l(char * restrict str, size_t size, locale_t loc, const char * restrict format, va_list ap);
int
vsprintf_l(char * restrict str, locale_t loc, const char * restrict format, va_list ap);
DESCRIPTION
The printf_l(), dprintf_l(), fprintf_l(), sprintf_l(), snprintf_l(), asprintf_l(), vprintf_l(), vdprintf_l(), vfprintf_l(), vsprintf_l(),
vsnprintf_l(), and vasprintf_l() functions are extended locale versions of the printf(), dprintf(), fprintf(), sprintf(), snprintf(),
asprintf(), vprintf(), vdprintf(), vfprintf(), vsprintf(), vsnprintf(), and vasprintf() functions, respectively. Refer to their manual pages
for details. Also, see xlocale(3) for more information about extended locales.
SEE ALSO
printf(3), xlocale(3)
BSD
December 15, 2009 BSD