ihandledir: fix memory leak if writing a directory entry failed - geomyidae - A small C-based gopherd. Err bitreich.org 70
hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70
1Log /scm/geomyidae/log.gph bitreich.org 70
1Files /scm/geomyidae/files.gph bitreich.org 70
1Refs /scm/geomyidae/refs.gph bitreich.org 70
1Tags /scm/geomyidae/tag bitreich.org 70
1README /scm/geomyidae/file/README.gph bitreich.org 70
1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 70d5d67d68410c852d9663a6e4935e508897ffdf /scm/geomyidae/commit/70d5d67d68410c852d9663a6e4935e508897ffdf.gph bitreich.org 70
1parent 9526d3d35917770ca5a021d745bcf50d382875b2 /scm/geomyidae/commit/9526d3d35917770ca5a021d745bcf50d382875b2.gph bitreich.org 70
hAuthor: Hiltjo Posthuma <hiltjo@codemadness.org> URL:mailto:hiltjo@codemadness.org bitreich.org 70
iDate: Wed, 8 Mar 2023 20:55:16 +0100 Err bitreich.org 70
i Err bitreich.org 70
ihandledir: fix memory leak if writing a directory entry failed Err bitreich.org 70
i Err bitreich.org 70
iSigned-off-by: Christoph Lohmann <20h@r-36.net> Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M handlr.c | 7 +++---- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 3 insertions(+), 4 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/handlr.c b/handlr.c /scm/geomyidae/file/handlr.c.gph bitreich.org 70
i@@ -67,10 +67,8 @@ handledir(int sock, char *path, char *port, char *base, char *args, Err bitreich.org 70
i return; Err bitreich.org 70
i } else { Err bitreich.org 70
i for (i = 0; i < ndir && ret >= 0; i++) { Err bitreich.org 70
i- if (dirent[i]->d_name[0] == '.') { Err bitreich.org 70
i- free(dirent[i]); Err bitreich.org 70
i+ if (dirent[i]->d_name[0] == '.') Err bitreich.org 70
i continue; Err bitreich.org 70
i- } Err bitreich.org 70
i Err bitreich.org 70
i type = gettype(dirent[i]->d_name); Err bitreich.org 70
i file = smprintf("%s%s%s", pa, Err bitreich.org 70
i@@ -87,8 +85,9 @@ handledir(int sock, char *path, char *port, char *base, char *args, Err bitreich.org 70
i humantime(&(st.st_mtime)), Err bitreich.org 70
i e, ohost, port); Err bitreich.org 70
i free(file); Err bitreich.org 70
i- free(dirent[i]); Err bitreich.org 70
i } Err bitreich.org 70
i+ for (i = 0; i < ndir; i++) Err bitreich.org 70
i+ free(dirent[i]); Err bitreich.org 70
i free(dirent); Err bitreich.org 70
i } Err bitreich.org 70
i dprintf(sock, ".\r\n"); Err bitreich.org 70
.
Response:
text/plain