commit - 971405a7e47997a87d869bc30b3fca98083395dc
commit + e45311301ff386e9a2f9ff3e613d520f57ad119b
blob - 55321254697fa7c93407f495fdae6fe53a5efc06
blob + cf1c35d91591e39601a05ab6ad4cc83fc50c3a1f
--- lib/diff3.c
+++ lib/diff3.c
return got_error_from_errno2("fopen", name);
err = getchange(&p, f, d3s);
if (err)
- return err;
+ goto done;
for (i = 0; p; i++) {
if (i >= d3s->szchanges - 1) {
err = increase(d3s);
if (err)
- return err;
+ goto done;
}
a = b = number(&p);
if (*p == ',') {
err = getchange(&p, f, d3s);
if (err)
- return err;
+ goto done;
}
if (i) {
(*dd)[i].old.from = (*dd)[i - 1].old.to;
(*dd)[i].new.from = (*dd)[i - 1].new.to;
}
-
- if (fclose(f) != 0)
+done:
+ if (fclose(f) != 0 && err == NULL)
err = got_error_from_errno("fclose");
-
- *n = i;
+ if (err == NULL)
+ *n = i;
return err;
}