diff options
| author | io mintz <eengeibee2oa@paperboats.net> | 2020-10-13 07:05:10 +0000 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2020-10-15 15:44:45 -0400 |
| commit | a22bec51494a50c044416d469cc33e043480e7fd (patch) | |
| tree | 005651a78b3caa79588e59f05ced15e83a3210ab | |
| parent | e77f354ca39576be2ae14d373e20dadb1d53f646 (diff) | |
| download | gmnisrv-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.
| -rw-r--r-- | src/serve.c | 3 |
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) { |
