asprintf returns memory pointer which is from malloc() not zmalloc()