Make sure to correctly free memory on errors

This commit is contained in:
froge 2025-07-31 19:15:05 +10:00
parent 1ca6ae7170
commit 044c611f50
Signed by: froge
GPG key ID: A825E09930271BFA

View file

@ -26,12 +26,13 @@ int main(void) {
int err = getline(&lineptr, &bufsize, stdin); int err = getline(&lineptr, &bufsize, stdin);
if(err == -1) { if(err == -1) {
fputs("Error reading line from user input\n", stderr); fputs("Error reading line from user input\n", stderr);
free(lineptr);
return 1; return 1;
} }
uintmax_t user_input = abs(atoi(lineptr)); uintmax_t user_input = abs(atoi(lineptr));
free(lineptr);
printf("\nRecursive factorial for number: %ju\n", factorial(user_input)); printf("\nRecursive factorial for number: %ju\n", factorial(user_input));
printf("Iterative factorial for number: %ju\n", factorial_iter(user_input)); printf("Iterative factorial for number: %ju\n", factorial_iter(user_input));
free(lineptr);
return 0; return 0;
} }