efreet: Fix buffer overrun, leave space for '\0'

CID: #1039304, #1039305 and #1039306
This commit is contained in:
Sebastian Dransfeld 2013-08-07 11:55:22 +02:00
parent e011d5e67c
commit 144ed4c10c
1 changed files with 3 additions and 3 deletions

View File

@ -38,7 +38,7 @@ efreet_uri_decode(const char *full_uri)
/* parse protocol */
p = full_uri;
for (i = 0; *p != ':' && *p != '\0' && i < 64; p++, i++)
for (i = 0; *p != ':' && *p != '\0' && i < (64 - 1); p++, i++)
protocol[i] = *p;
protocol[i] = '\0';
@ -46,7 +46,7 @@ efreet_uri_decode(const char *full_uri)
p += 3;
if (*p != '/')
{
for (i = 0; *p != '/' && *p != '\0' && i < _POSIX_HOST_NAME_MAX; p++, i++)
for (i = 0; *p != '/' && *p != '\0' && i < (_POSIX_HOST_NAME_MAX - 1); p++, i++)
hostname[i] = *p;
hostname[i] = '\0';
}
@ -55,7 +55,7 @@ efreet_uri_decode(const char *full_uri)
/* parse path */
/* See http://www.faqs.org/rfcs/rfc1738.html for the escaped chars */
for (i = 0; *p != '\0' && i < PATH_MAX; i++, p++)
for (i = 0; *p != '\0' && i < (PATH_MAX - 1); i++, p++)
{
if (*p == '%')
{