From 573ef00c91fc70edb76afd72f44b9b7bfffd23ff Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Mon, 8 Dec 2014 02:19:34 +0000 Subject: [PATCH] ls: Always leave room for the NULL byte in the link target Otherwise, if the length of the link target is the same as BUFSIZ, we will try to write past the end of buf. --- ls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ls.c b/ls.c index 24af998..ef3f5f6 100644 --- a/ls.c +++ b/ls.c @@ -300,7 +300,7 @@ output(Entry *ent) printf("%10lu ", (unsigned long)ent->size); printf("%s %s%s", buf, ent->name, indicator(ent->mode)); if (S_ISLNK(ent->mode)) { - if ((len = readlink(ent->name, buf, sizeof buf)) < 0) + if ((len = readlink(ent->name, buf, sizeof buf - 1)) < 0) eprintf("readlink %s:", ent->name); buf[len] = '\0'; printf(" -> %s%s", buf, indicator(ent->tmode));