diff --git a/src/main.c b/src/main.c index 1ccc1d1a..5d239ab2 100644 --- a/src/main.c +++ b/src/main.c @@ -1,9 +1,11 @@ #include +#define LINE_MAX_LENGTH 256 + int main() { - char line[256], last_char; + char line[LINE_MAX_LENGTH], last_char; int char_index; while (1) { @@ -13,6 +15,8 @@ main() while ((last_char = getchar()) != '\n') { if (last_char == EOF) goto eof; + if (char_index == LINE_MAX_LENGTH) + goto overflow; line[char_index++] = last_char; } line[char_index] = '\0'; @@ -25,6 +29,12 @@ main() eof: puts(""); + goto exit; + overflow: + puts("** [fatal] line input overflow"); + goto exit; + + exit: return 0; }