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 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 .