readlink() truncates and does not null terminate the string when more
bytes would be written than available. Just increase the char array by
one and assume that there is a problem when all bytes are needed.
Coverity: #
1330087, #
1329991
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-static char buf[PATH_MAX];
+static char buf[PATH_MAX + 1];
static char buf2[PATH_MAX];
static unsigned int mode = 0600;
static char buf2[PATH_MAX];
static unsigned int mode = 0600;
strcpy(path, dp->d_name);
len = readlink(buf2, buf, sizeof(buf));
strcpy(path, dp->d_name);
len = readlink(buf2, buf, sizeof(buf));
+ if (len <= 0 || len == sizeof(buf))