Commit Diff


commit - 8e6ecdb1ba3f72fe0dcc2176dc6abfb99b800e27
commit + 1b11aa0ac1ed83c510d6c78fc5279380dbcebe73
blob - e7a0156fd6a83975ccc4239533fb0dd8f8d19731
blob + 5c9aba1c8075530d47066c6456ea7b74a36a449f
--- lib/repository_admin.c
+++ lib/repository_admin.c
@@ -1396,6 +1396,7 @@ pack_is_redundant(int *redundant, struct got_repositor
 
 struct pack_info {
 	const char	*path;
+	size_t		 path_len;
 	size_t		 nobjects;
 };
 
@@ -1407,7 +1408,8 @@ pack_info_cmp(const void *a, const void *b)
 	pa = a;
 	pb = b;
 	if (pa->nobjects == pb->nobjects)
-		return strcmp(pa->path, pb->path);
+		return got_path_cmp(pa->path, pb->path,
+		    pa->path_len, pb->path_len);
 	if (pa->nobjects > pb->nobjects)
 		return -1;
 	return 1;
@@ -1449,6 +1451,7 @@ repo_purge_redundant_packfiles(struct got_repository *
 
 		pinfo = &sorted[i++];
 		pinfo->path = pe->path;
+		pinfo->path_len = pe->path_len;
 		pinfo->nobjects = be32toh(packidx->hdr.fanout_table[0xff]);
 	}
 	qsort(sorted, npacks, sizeof(*sorted), pack_info_cmp);