Index: uspace/app/fontviewer/fontviewer.c
===================================================================
--- uspace/app/fontviewer/fontviewer.c	(revision dd500c26d08a5e01581111bd204d1724c4b2696a)
+++ uspace/app/fontviewer/fontviewer.c	(revision 103db9089df98061a5560c2c731e082f1f964f94)
@@ -170,17 +170,17 @@
 	source_t leading_bg = rgb(170, 238, 255);
 	source_t leading_fg = rgb(0, 170, 212);
-
-	font_t *font;
+	font_t *info_font = NULL;
+	font_t *font = NULL;
+
 	errno_t rc = create_font(&font, points);
 	if (rc != EOK) {
 		printf("Failed creating font\n");
-		return rc;
-	}
-
-	font_t *info_font;
+		goto out_err;
+	}
+
 	rc = embedded_font_create(&info_font, 16);
 	if (rc != EOK) {
 		printf("Failed creating info font\n");
-		return rc;
+		goto out_err;
 	}
 
@@ -188,5 +188,5 @@
 	rc = font_get_metrics(font, &font_metrics);
 	if (rc != EOK)
-		return rc;
+		goto out_err;
 
 	surface_coord_t top = 50;
@@ -238,7 +238,10 @@
 	}
 
-	font_release(font);
-	font_release(info_font);
-	return EOK;
+out_err:
+	if (font)
+		font_release(font);
+	if (info_font)
+		font_release(info_font);
+	return rc;
 }
 
