add: free_gerb_image(image);
context: new_gerb_image(gerb_image_t *image){    if ((image = (gerb_image_t *)malloc(sizeof(gerb_image_t))) == NULL) {	free(image);	image = NULL;	return NULL;    }    memset((void *)image, 0, sizeof(gerb_image_t));        if ((image->netlist = (gerb_net_t *)malloc(sizeof(gerb_net_t))) == NULL) {	free(image->netlist);	image->netlist = NULL;	free(image);	image = NULL;	return NULL;    }    memset((void *)image->netlist, 0, sizeof(gerb_net_t));        if ((image->info = (gerb_image_info_t *)malloc(sizeof(gerb_image_info_t))) == NULL) {	free(image->netlist);	image->netlist = NULL;	free(image->info);	image->info = NULL;	free(image);	image = NULL;	return NULL;    }    memset((void *)image->info, 0, sizeof(gerb_image_info_t));        if ((image->transf = gerb_transf_new()) == NULL) {        free(image->info);        image->info = NULL;        free(image->netlist);        image->netlist = NULL;	free(image->info);        image->info = NULL;	free(image);        image = NULL;	return NULL;    }        image->info->min_x = HUGE_VAL;    image->info->min_y = HUGE_VAL;    image->info->max_x = -HUGE_VAL;    image->info->max_y = -HUGE_VAL;    image->info->step_and_repeat.X = 1;    image->info->step_and_repeat.Y = 1;    return image;}