Move .. handling to a more efficient position. - 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 646c0c9ac1c8944393c3640c63ffefd6f400c2a5 DIR parent 2a482d9af02b09bc8a770c4e08be577264d473c5 HTML Author: Christoph Lohmann <20h@r-36.net> Date: Sat, 22 Jul 2023 17:14:26 +0200 Move .. handling to a more efficient position. Diffstat: M main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) --- DIR diff --git a/main.c b/main.c @@ -187,6 +187,12 @@ handlerequest(int sock, char *req, int rlen, char *base, char *ohost, if (c) c[0] = '\0'; + /* Do not allow requests including "..". */ + if (strstr(recvb, "..")) { + dprintf(sock, "%s", selinval); + return; + } + sear = strchr(recvb, '\t'); if (sear != NULL) { *sear++ = '\0'; @@ -245,12 +251,6 @@ handlerequest(int sock, char *req, int rlen, char *base, char *ohost, } printf("traverse = %s\n", traverse); - /* Do not allow requests including "..". */ - if (strstr(recvb, "..")) { - dprintf(sock, "%s", selinval); - return; - } - printf("recvb = %s\n", recvb); if (snprintf(path, sizeof(path), "%s%s%s", base, (*recvb != '/')? "/" : "",