sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 573ef00c91fc70edb76afd72f44b9b7bfffd23ff
parent 46ea55a258084cc660eb93a39432c879cf70cb32
Author: Michael Forney <mforney@mforney.org>
Date:   Mon,  8 Dec 2014 02:19:34 +0000

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.

Diffstat:
Mls.c | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 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));