.In netinet6/ipsec.h declares
extern int ipsec_errcode;
which is used to pass an error code from IPsec policy manipulation library to an user program. The ipsec_strerror function can be used to obtain the error message string for the error code.
The array pointed to is not to be modified by the program. Since ipsec_strerror uses strerror(3) as underlying function, calling strerror(3) after ipsec_strerror would make the return value from ipsec_strerror invalid, or overwritten.
The ipsec_strerror function always returns a pointer to C string. The C string must not be overwritten by user programs.