caps: fix illegal access to array bound

Signed-off-by: 2xsec <dh48.jeong@samsung.com>
This commit is contained in:
2xsec 2018-09-03 15:10:05 +09:00
parent d3aba1db25
commit 22b67bfa96
No known key found for this signature in database
GPG Key ID: 0BE2750EE612F372

View File

@ -296,15 +296,13 @@ static long int _real_caps_last_cap(void)
if (fd >= 0) { if (fd >= 0) {
ssize_t n; ssize_t n;
char *ptr; char *ptr;
char buf[INTTYPE_TO_STRLEN(int)]; char buf[INTTYPE_TO_STRLEN(int)] = {0};
again: again:
n = read(fd, buf, sizeof(buf)); n = read(fd, buf, sizeof(buf) - 1);
if (n < 0 && errno == EINTR) { if (n < 0 && errno == EINTR) {
goto again; goto again;
} else if (n >= 0) { } else if (n >= 0) {
buf[n] = '\0';
errno = 0; errno = 0;
result = strtol(buf, &ptr, 10); result = strtol(buf, &ptr, 10);
if (!ptr || (*ptr != '\0' && *ptr != '\n') || errno != 0) if (!ptr || (*ptr != '\0' && *ptr != '\n') || errno != 0)