added free(data) after vasprintf(&) - trying to remove leak