Index: uspace/app/fontviewer/fontviewer.c
===================================================================
--- uspace/app/fontviewer/fontviewer.c	(revision cf3a905cae8433ab4e89de18f9432cc8cbaa8deb)
+++ uspace/app/fontviewer/fontviewer.c	(revision a01f7320d7baed06438e7cde66ccddacc299ba1d)
@@ -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,6 +238,10 @@
 	}
 
-	font_release(font);
-	return EOK;
+out_err:
+	if (font)
+		font_release(font);
+	if (info_font)
+		font_release(info_font);
+	return rc;
 }
 
Index: uspace/lib/draw/font/bitmap_backend.c
===================================================================
--- uspace/lib/draw/font/bitmap_backend.c	(revision cf3a905cae8433ab4e89de18f9432cc8cbaa8deb)
+++ uspace/lib/draw/font/bitmap_backend.c	(revision a01f7320d7baed06438e7cde66ccddacc299ba1d)
@@ -212,4 +212,5 @@
 
 	data->decoder->release(data->decoder_data);
+	free(data);
 }
 
