aboutsummaryrefslogtreecommitdiff
path: root/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'server.c')
-rw-r--r--server.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/server.c b/server.c
index 09b2645..0eebe46 100644
--- a/server.c
+++ b/server.c
@@ -907,13 +907,10 @@ open_dir(struct client *c)
static void
redirect_canonical_dir(struct client *c)
{
- size_t len;
+ int r;
- strlcpy(c->sbuf, "/", sizeof(c->sbuf));
- strlcat(c->sbuf, c->iri.path, sizeof(c->sbuf));
- len = strlcat(c->sbuf, "/", sizeof(c->sbuf));
-
- if (len >= sizeof(c->sbuf)) {
+ r = snprintf(c->sbuf, sizeof(c->sbuf), "/%s/", c->iri.path);
+ if (r < 0 || (size_t)r >= sizeof(c->sbuf)) {
start_reply(c, TEMP_FAILURE, "internal server error");
return;
}