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