ssp(3)
- NetBSD Manual Pages
SSP(3) NetBSD 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 *
stpcpy(char *str, const char *ptr);
char *
strcpy(char *str, const char *ptr);
char *
strcat(char *str, const char *ptr);
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: ``-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 9.0 December 3, 2015 NetBSD 9.0
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.