safec  3.2
Safe C Library - ISO TR24731 Bounds Checking Interface
safe_str_constraint.c File Reference
#include "safe_str_lib.h"
+ Include dependency graph for safe_str_constraint.c:

Functions

EXPORT constraint_handler_t set_str_constraint_handler_s (constraint_handler_t handler)
 The set_str_constraint_handler_s function sets the runtime-constraint handler to be handler. More...
 
EXPORT void invoke_safe_str_constraint_handler (const char *msg, void *ptr, errno_t error)
 Invokes the currently set constraint handler or the default. More...
 

Variables

static constraint_handler_t str_handler = NULL
 

Function Documentation

◆ set_str_constraint_handler_s()

EXPORT constraint_handler_t set_str_constraint_handler_s ( constraint_handler_t  handler)

The set_str_constraint_handler_s function sets the runtime-constraint handler to be handler.

The runtime-constraint handler is the function to be called when a library function detects a runtime-constraint violation. Only the most recent handler registered with set_str_constraint_handler_s is called when a runtime-constraint violation occurs. When the handler is called, it is passed the following arguments in the following order:

  1. A pointer to a character string describing the runtime-constraint violation.
  2. A null pointer or a pointer to an implementation defined object.
  3. If the function calling the handler has a return type declared as errno_t, the return value of the function is passed. Otherwise, a positive value of type errno_t is passed. The implementation has a default constraint handler that is used if no calls to the set_constraint_handler_s function have been made. The behavior of the default handler is implementation-defined, and it may cause the program to exit or abort. If the handler argument to set_constraint_handler_s is a null pointer, the implementation default handler becomes the current constraint handler.
Remarks
SPECIFIED IN ISO/IEC JTC1 SC22 WG14 N1172, Programming languages, environments and system software interfaces, Extensions to the C Library, Part I: Bounds-checking interfaces
See also
set_str_constraint_handler_s()

◆ invoke_safe_str_constraint_handler()

EXPORT void invoke_safe_str_constraint_handler ( const char *  msg,
void *  ptr,
errno_t  error 
)

Invokes the currently set constraint handler or the default.

Parameters
*msgPointer to the message describing the error
*ptrPointer to aassociated data. Can be NULL.
errorThe error code encountered.

Variable Documentation

◆ str_handler

constraint_handler_t str_handler = NULL
static