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 b48391b..a2fb5cb 100644
--- a/ls.c
+++ b/ls.c
@@ -291,7 +291,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';
                mkent(&entlnk, buf, Fflag);
-- 
2.1.3.1.g339ec9c


Reply via email to