diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
index c2ebdc34436..a76990360a2 100644
--- a/src/analyze/analyze.c
+++ b/src/analyze/analyze.c
@@ -435,7 +435,7 @@ fail:
static int acquire_host_info(sd_bus *bus, struct host_info **hi) {
int r;
- struct host_info *host;
+ _cleanup_host_info_ struct host_info *host;
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
static const struct bus_properties_map hostname_map[] = {
@@ -471,13 +471,12 @@ static int acquire_host_info(sd_bus *bus, struct host_info **hi) {
"/org/freedesktop/systemd1",
manager_map,
host);
- if (r < 0) {
- free_host_info(host);
+ if (r < 0)
return log_error_errno(r, "Failed to get host information from systemd: %s",
bus_error_message(&error, r));
- }
*hi = host;
+ host = NULL;
return 0;
}
@@ -658,7 +657,7 @@ static int analyze_plot(sd_bus *bus) {
svg("\n");
svg("%s", pretty_times);
svg("%s %s (%s %s %s) %s %s",
- strempty(host->os_pretty_name),
+ isempty(host->os_pretty_name) ? "Linux" : host->os_pretty_name,
strempty(host->hostname),
strempty(host->kernel_name),
strempty(host->kernel_release),