Correct syntax error printing in case of end of file (#4350)
The old variant of the syntax error printing method could incorrectly over-read the source file contents. JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.usz@partner.samsung.com
This commit is contained in:
+10
-7
@@ -174,15 +174,18 @@ main_print_unhandled_exception (jerry_value_t error_value) /**< error value */
|
|||||||
pos++;
|
pos++;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t char_count = 0;
|
/* Print character if:
|
||||||
uint8_t ch;
|
* - The max line length is not reached.
|
||||||
|
* - The current position is valid (it is not the end of the source).
|
||||||
do
|
* - The current character is not a newline.
|
||||||
|
**/
|
||||||
|
for (uint32_t char_count = 0;
|
||||||
|
(char_count < SYNTAX_ERROR_MAX_LINE_LENGTH) && (pos < source_size) && (source_p[pos] != '\n');
|
||||||
|
char_count++, pos++)
|
||||||
{
|
{
|
||||||
ch = source_p[pos++];
|
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "%c", source_p[pos]);
|
||||||
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "%c", ch);
|
|
||||||
}
|
}
|
||||||
while (ch != '\n' && char_count++ < SYNTAX_ERROR_MAX_LINE_LENGTH);
|
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "\n");
|
||||||
|
|
||||||
jerry_port_release_source (source_p);
|
jerry_port_release_source (source_p);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user