diff --git a/a1/program.c b/a1/program.c index af8d7a7..9613473 100644 --- a/a1/program.c +++ b/a1/program.c @@ -14,7 +14,10 @@ int main() { char code[MAX_SIZE]; stack.size = 0; - fgets(code, sizeof(code), stdin); + if (fgets(code, sizeof(code), stdin) == NULL) { + printf("Error reading input.\n"); + return 1; + } if (code[strlen(code) - 1] == '\n') { code[strlen(code) - 1] = '\0'; @@ -25,6 +28,10 @@ int main() { char missing_closing[MAX_SIZE]; int missing_count = 0; + if (strlen(code) > MAX_SIZE) { + return 1; + } + for (int i = 0; code[i] != '\0'; i++) { if (code[i] == '(' || code[i] == '[' || code[i] == '{' || code[i] == '<') { if (stack.size < MAX_SIZE) { @@ -47,7 +54,7 @@ int main() { (code[i] == '>' && opening != '<')) { printf("Crossed bracket %c in %d, expected %c\n", code[i], i, opening); return 0; - } + } } } @@ -67,4 +74,4 @@ int main() { } return 0; -} +} \ No newline at end of file