The formatted error message is copied into a fixed size buffer. Messages that format to a length of more than 249 will cause the buffer to overflow.
#include <yoctohttp/common.h> #include <stdio.h> int main() { herror_t *err; err = herror_new("func", 0, "Oh Noes"); printf("'%s'\n", herror_func(err)); herror_release(err); err = herror_new("func", 0, "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789MyFunc"); printf("'%s'\n", herror_func(err)); /* Should print "func", but actually prints "MyFunc" */ herror_release(err); return 0; }