Commit Diff


commit - c484365208722b9c2e899350edef2d923d2ed0e7
commit + 83ce39e32bc50c5e9724e71f445f59d96ddb18bf
blob - 85ed066ab0b8a250a49ed66532ba91b8d9fdf3da
blob + 9203e20f5d24c03a3237be26cc99fe9d59babd2a
--- tog/tog.c
+++ tog/tog.c
@@ -4003,15 +4003,18 @@ blame_tree_entry(struct tog_view **new_view, int begin
 		return err;
 
 	blame_view = view_open(0, 0, 0, begin_x, TOG_VIEW_BLAME);
-	if (blame_view == NULL)
-		return got_error_from_errno("view_open");
+	if (blame_view == NULL) {
+		err = got_error_from_errno("view_open");
+		goto done;
+	}
 
 	err = open_blame_view(blame_view, path, commit_id, refs, repo);
 	if (err) {
 		view_close(blame_view);
-		free(path);
 	} else
 		*new_view = blame_view;
+done:
+	free(path);
 	return err;
 }