### 16.2 Object Size Checking ¶

Object Size Checking is a feature which wraps certain functions with checks to prevent buffer overflows. These are enabled when compiling with optimization (`-O1` and higher) and `_FORTIFY_SOURCE` defined to 1, or for stricter checks, to 2.

The following functions use object size checking to detect buffer overflows when enabled:

    String functions:

    bcopy           memmove         strcpy
    bzero           mempcpy         strcat
    explicit_bzero  memset          strncat
    memcpy          stpcpy          strncpy

    Wide Character String functions:

    fgetws          wcrtomb         wcsrtombs
    fgetws_unlocked wcscat          wmemcpy
    mbsnrtowcs      wcscpy          wmemmove
    mbsrtowcs       wcsncat         wmempcpy
    wcpcpy          wcsncpy         wmemset
    wcpncpy         wcsnrtombs

    Stdio functions:

    fgets           fread_unlocked  sprintf
    fgets_unlocked  gets            vsnprintf
    fread           snprintf        vsprintf

    Stdlib functions:

    mbstowcs        wcstombs        wctomb

    System functions:

    getcwd          read            ttyname_r
    pread           readlink