}
va_end(ap);
- ret = resolve_error_code(cc, err_code, err_orig);
wo_msg:
+ ret = resolve_error_code(cc, err_code, err_orig);
update_error_msg(cc, new_msg);
if (new_msg)
free(new_msg);
if (cc->err_msg)
reset_error(cc, err_code);
+ if (err_format == NULL || err_format[0] == '\0') {
+ goto wo_msg;
+ }
+
/* make new message */
va_start(ap, err_format);
err_format_len = vasprintf(&new_msg, err_format, ap);
va_end(ap);
return EINVAL;
}
+ va_end(ap);
+wo_msg:
ret = resolve_error_code(cc, err_code, err_orig);
update_error_msg(cc, new_msg);
- free(new_msg);
- va_end(ap);
+ if (new_msg)
+ free(new_msg);
- if (!err_code)
+ if (!err_code) //TODO ???
return 0;
return ret;
}