reply_info_delete(void* d, void* ATTR_UNUSED(arg))
{
struct reply_info* r = (struct reply_info*)d;
+ if (r->reason_bogus_str_size) {
+ free(r->reason_bogus_str);
+ }
free(r);
}
if(!cp)
return NULL;
- if (rep->reason_bogus_str_size > 0 && rep->reason_bogus_str && region) {
- cp->reason_bogus_str = (char*)regional_alloc(region,
- sizeof(char) * (rep->reason_bogus_str_size + 1));
+ if (rep->reason_bogus_str_size > 0 && rep->reason_bogus_str) {
+ if (region) {
+ cp->reason_bogus_str = (char*)regional_alloc(region,
+ sizeof(char) * (rep->reason_bogus_str_size + 1));
+ }
+ else {
+ cp->reason_bogus_str = malloc(sizeof(char) * (rep->reason_bogus_str_size + 1));
+ }
if (!(cp->reason_bogus_str)) {
if(!region)