Commit Diff


commit - 5903ff6ef10b567d1d0d6c30317ed5b35d71e488
commit + b2df341bd0e5b6145674f4e7edb341352c3baddc
blob - 3c6ad6074d6b6b8a2339c9beffc2e8d30e7d7600
blob + 9211257edffc6c044b811ae3a636cf3be929909c
--- lib/repository.c
+++ lib/repository.c
@@ -1013,12 +1013,12 @@ match_loose_object(struct got_object_id **unique_id, c
 		}
 	}
 done:
+	if (dir && closedir(dir) != 0 && err == NULL)
+		err = got_error_from_errno("closedir");
 	if (err) {
 		free(*unique_id);
 		*unique_id = NULL;
 	}
-	if (dir && closedir(dir) != 0 && err == NULL)
-		err = got_error_from_errno("closedir");
 	free(path);
 	return err;
 }