summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorio mintz <eengeibee2oa@paperboats.net>2020-10-13 07:05:10 +0000
committerDrew DeVault <sir@cmpwn.com>2020-10-15 15:44:45 -0400
commita22bec51494a50c044416d469cc33e043480e7fd (patch)
tree005651a78b3caa79588e59f05ced15e83a3210ab /src
parente77f354ca39576be2ae14d373e20dadb1d53f646 (diff)
downloadgmnisrv-a22bec51494a50c044416d469cc33e043480e7fd.tar.gz
gmnisrv-a22bec51494a50c044416d469cc33e043480e7fd.tar.xz
gmnisrv-a22bec51494a50c044416d469cc33e043480e7fd.zip
add a missing "/" to autoindex paths
With the following directory structure: /srv/gmni: baz/ foo/ /srv/gmni/baz: a /srv/gmni/foo: bar/ /srv/gmni/foo/bar: b trying to access gemini://somesite/ with autoindex=on works, but accessing /foo fails because it tries to stat /srv/gmni/foobar instead of /srv/gmni/foo/bar. This commit fixes that by adding a trailing slash.
Diffstat (limited to 'src')
-rw-r--r--src/serve.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/serve.c b/src/serve.c
index bcb4b8c..df08d08 100644
--- a/src/serve.c
+++ b/src/serve.c
@@ -56,8 +56,7 @@ serve_autoindex(struct gmnisrv_client *client, const char *path)
errno = 0;
while ((ent = readdir(dirp)) != NULL) {
char fpath[PATH_MAX + 1];
- strcpy(fpath, path);
- strncat(fpath, ent->d_name, sizeof(fpath)-1);
+ snprintf(fpath, sizeof(fpath), "%s/%s", path, ent->d_name);
struct stat st;
if (stat(fpath, &st) != 0) {