From: Omar Polo Subject: Re: plug a few small leaks in tog and repository.c:match_packed_object() To: Mark Jamsek Cc: gameoftrees@openbsd.org Date: Thu, 21 Dec 2023 08:48:23 +0100 On 2023/12/21 17:32:33 +1100, Mark Jamsek wrote: > I think op's suggestion to ditch f entirely and just use s->f fixes > this? I'm not even sure why I was using the temporary tbh. ok op@ Thanks! > diff 85467924748b0e27f0105bde280878a149df9fc8 15c9072be9bc5952579bbb8a3cad7e12c9f3a009 > commit - 85467924748b0e27f0105bde280878a149df9fc8 > commit + 15c9072be9bc5952579bbb8a3cad7e12c9f3a009 > blob - be366266e526e26c8734719d20d29ed05d463b06 > blob + 1d2d2883f6f459ee2e81334d5953c0559d5de275 > --- tog/tog.c > +++ tog/tog.c > @@ -5304,7 +5304,7 @@ static const struct got_error * > create_diff(struct tog_diff_view_state *s) > { > const struct got_error *err = NULL; > - FILE *f = NULL, *tmp_diff_file = NULL; > + FILE *tmp_diff_file = NULL; > int obj_type; > struct got_diff_line *lines = NULL; > struct got_pathlist_head changed_paths; > @@ -5318,22 +5318,19 @@ create_diff(struct tog_diff_view_state *s) > return got_error_from_errno("malloc"); > s->nlines = 0; > > - f = got_opentemp(); > - if (f == NULL) { > - err = got_error_from_errno("got_opentemp"); > - goto done; > - } > - tmp_diff_file = got_opentemp(); > - if (tmp_diff_file == NULL) { > - err = got_error_from_errno("got_opentemp"); > - goto done; > - } > if (s->f && fclose(s->f) == EOF) { > - err = got_error_from_errno("fclose"); > - goto done; > + s->f = NULL; > + return got_error_from_errno("fclose"); > } > - s->f = f; > > + s->f = got_opentemp(); > + if (s->f == NULL) > + return got_error_from_errno("got_opentemp"); > + > + tmp_diff_file = got_opentemp(); > + if (tmp_diff_file == NULL) > + return got_error_from_errno("got_opentemp"); > + > if (s->id1) > err = got_object_get_type(&obj_type, s->repo, s->id1); > else