mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 14:03:02 +01:00
Adriano found a case where I didn't check for a premature, unexpected null terminator.
I found another case, too.
This commit is contained in:
parent
40fd6f9766
commit
b106f0bffc
@ -3067,7 +3067,9 @@ static processing_state create_db(const TEXT* statement,
|
|||||||
while (*comment && *comment != '\n')
|
while (*comment && *comment != '\n')
|
||||||
++comment;
|
++comment;
|
||||||
|
|
||||||
++comment; // skip the newline
|
if (*comment == '\n')
|
||||||
|
++comment; // skip the newline
|
||||||
|
|
||||||
while (*comment && fb_isspace(*comment))
|
while (*comment && fb_isspace(*comment))
|
||||||
++comment;
|
++comment;
|
||||||
}
|
}
|
||||||
@ -3106,12 +3108,16 @@ static processing_state create_db(const TEXT* statement,
|
|||||||
{
|
{
|
||||||
for (const char& newquote = *comment++; *comment; ++comment)
|
for (const char& newquote = *comment++; *comment; ++comment)
|
||||||
{
|
{
|
||||||
// If we find 'hello ''world''' this is valid.
|
|
||||||
if (*comment != newquote)
|
if (*comment != newquote)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// If we find 'hello ''world''' this is valid.
|
||||||
if (comment[1] == newquote)
|
if (comment[1] == newquote)
|
||||||
|
{
|
||||||
comment += 2;
|
comment += 2;
|
||||||
|
if (!*comment)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (*comment == newquote && comment[1] != newquote)
|
if (*comment == newquote && comment[1] != newquote)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user