When we hit OOM it doesn't really make sense to format the error message
by attempting to allocate it. Introduce a simple helper that prints a
static message and terminates the execution.
/* Bypass header poison */
#undef strdup
+
+/* simple handler for oom conditions */
+static void
+vshErrorOOM(void)
+{
+ fflush(stdout);
+ fputs(_("error: Out of memory\n"), stderr);
+ fflush(stderr);
+ exit(EXIT_FAILURE);
+}
+
+
double
vshPrettyCapacity(unsigned long long val, const char **unit)
{
return;
va_start(ap, format);
- if (virVasprintf(&str, format, ap) < 0) {
- vshError(ctl, "%s", _("Out of memory"));
- va_end(ap);
- return;
- }
+ if (virVasprintfQuiet(&str, format, ap) < 0)
+ vshErrorOOM();
va_end(ap);
fputs(str, stdout);
VIR_FREE(str);