Fix for buffer overflows identified by libgmalloc

This commit is contained in:
ridiculousfish
2013-10-16 01:02:15 -07:00
parent 4980959fce
commit 3c5d5b344e
2 changed files with 18 additions and 10 deletions

View File

@@ -260,8 +260,7 @@ void parse_util_cmdsubst_extent(const wchar_t *buff, size_t cursor_pos, const wc
/* No subshell found, all done */
break;
}
/* Intrepret NULL to mean the end */
/* Interpret NULL to mean the end */
if (end == NULL)
{
end = const_cast<wchar_t *>(buff) + bufflen;
@@ -273,6 +272,9 @@ void parse_util_cmdsubst_extent(const wchar_t *buff, size_t cursor_pos, const wc
begin++;
ap = begin;
bp = end;
/* pos is where to begin looking for the next one. But if we reached the end there's no next one. */
if (begin >= end)
break;
pos = begin + 1;
}
else if (begin >= cursor)