commit 9b98f34bfa03c10a564b345aba418303214a57aa from: Stefan Sperling date: Mon Apr 02 17:22:15 2018 UTC always free ds->member and ds->class in got_diffreg() commit - df51fc4ebf21e3d9e59af22169fe0c4e448d2031 commit + 9b98f34bfa03c10a564b345aba418303214a57aa blob - 736995e42ae41a4af31527a8386da60d46184e05 blob + f6a314eee7e4ce1f534ac2595d5e5d189df410fc --- lib/diffreg.c +++ lib/diffreg.c @@ -359,8 +359,6 @@ got_diffreg(int *rval, FILE *f1, FILE *f2, int flags, p = reallocarray(ds->member, ds->slen[1] + 2, sizeof(*ds->member)); if (p == NULL) { err = got_error_from_errno(); - free(ds->member); - ds->member = NULL; goto closem; } ds->member = p; @@ -373,8 +371,6 @@ got_diffreg(int *rval, FILE *f1, FILE *f2, int flags, p = reallocarray(ds->class, ds->slen[0] + 2, sizeof(*ds->class)); if (p == NULL) { err = got_error_from_errno(); - free(ds->class); - ds->class = NULL; goto closem; } ds->class = p; @@ -394,12 +390,8 @@ got_diffreg(int *rval, FILE *f1, FILE *f2, int flags, i = stone(ds, ds->class, ds->slen[0], ds->member, ds->klist, flags); if (i < 0) { err = got_error_from_errno(); - free(ds->member); - free(ds->class); goto closem; } - free(ds->member); - free(ds->class); p = reallocarray(ds->J, ds->len[0] + 2, sizeof(*ds->J)); if (p == NULL) { @@ -436,6 +428,8 @@ got_diffreg(int *rval, FILE *f1, FILE *f2, int flags, flags)) err = got_error_from_errno(); closem: + free(ds->member); + free(ds->class); if (ds->anychange) { args->status |= 1; if (*rval == D_SAME)