strcat(result, "\0");
result[counter] = '\0'; // И кавычки, ОЛЕНЬ, ОДИНАРНЫЕ НАДО!!!
*** Error in `./bin/binname': free(): invalid next size (fast): 0x0000000001088b10 ***
Аварийный останов
#define PACKAGE_NAME "binname"
#define PACKAGE_VERSION "1.0.0"
int buflen = snprintf(NULL, 0, msg, arguments);
char *msgbuf = (char*)malloc(buflen+1);
Проще наверное было бы char shortname;