| handledir: fix memory leak if writing a directory entry failed - geomyidae - A … | |
| git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| README | |
| LICENSE | |
| --- | |
| commit 70d5d67d68410c852d9663a6e4935e508897ffdf | |
| parent 9526d3d35917770ca5a021d745bcf50d382875b2 | |
| Author: Hiltjo Posthuma <[email protected]> | |
| Date: Wed, 8 Mar 2023 20:55:16 +0100 | |
| handledir: fix memory leak if writing a directory entry failed | |
| Signed-off-by: Christoph Lohmann <[email protected]> | |
| Diffstat: | |
| M handlr.c | 7 +++---- | |
| 1 file changed, 3 insertions(+), 4 deletions(-) | |
| --- | |
| diff --git a/handlr.c b/handlr.c | |
| @@ -67,10 +67,8 @@ handledir(int sock, char *path, char *port, char *base, char… | |
| 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 … | |
| 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"); |