Commit Diff


commit - 55330abe593a76b678063ffc00a39d236a211505
commit + 83310ac93c89fc777a006097b06ef4f4df3a5396
blob - 5188ecbf5c2419c20c0064c42212be9f91f390f0
blob + 69956c3e9633b8b589dac03f893ff441190025d1
--- lib/gitconfig.c
+++ lib/gitconfig.c
@@ -514,6 +514,15 @@ got_gitconfig_get_section_list(struct got_gitconfig_li
 	for (i = 0; i < nitems(conf->bindings); i++) {
 		for (cb = LIST_FIRST(&conf->bindings[i]); cb;
 		    cb = LIST_NEXT(cb, link)) {
+			int section_present = 0;
+			TAILQ_FOREACH(node, &list->fields, link) {
+				if (strcmp(node->field, cb->section) == 0) {
+					section_present = 1;
+					break;
+				}
+			}
+			if (section_present)
+				continue;
 			list->cnt++;
 			node = calloc(1, sizeof *node);
 			if (!node) {