Commit Diff


commit - 7b366981c181847ca7ddee5d703737ad12ee7184
commit + 6b59e13c2c31b2a7edc9aaf87f6f7257ce91781a
blob - e46456db9888c0aaf638fadece6b6b84389ccde7
blob + 9f821a6575a0060ae8726366a7ce84f3b2b190ec
--- lib/diffreg.c
+++ lib/diffreg.c
@@ -400,10 +400,6 @@ got_diffreg(int *rval, FILE *f1, FILE *f2, int flags,
 	}
 	ds->J = p;
 	unravel(ds, ds->klist[i]);
-	free(ds->clist);
-	ds->clist = NULL;
-	free(ds->klist);
-	ds->klist = NULL;
 
 	lp = reallocarray(ds->ixold, ds->len[0] + 2, sizeof(*ds->ixold));
 	if (lp == NULL) {
@@ -429,6 +425,8 @@ closem:
 	free(ds->J);
 	free(ds->member);
 	free(ds->class);
+	free(ds->clist);
+	free(ds->klist);
 	if (ds->anychange) {
 		args->status |= 1;
 		if (*rval == D_SAME)