X-Git-Url: http://git.ieval.ro/?p=filters.git;a=blobdiff_plain;f=scramble.c;h=c1e989a2dcd862223b3fa054608b71df0e905a4d;hp=fc35ff8caefaa3c4d256732b1a0660e4e78ed1a1;hb=HEAD;hpb=027a076285666ab63987cfeef204543963684359 diff --git a/scramble.c b/scramble.c index fc35ff8..c1e989a 100644 --- a/scramble.c +++ b/scramble.c @@ -120,7 +120,7 @@ char *clear_string(char *string) { int main(int argc, char **argv) { int word_length; - char c, tempchar, *word; + char c, tempchar, *word, *rword; FILE *infile, *outfile; #if ALLOW_FILE_IO @@ -171,13 +171,20 @@ int main(int argc, char **argv) { c = fgetc(infile); if(feof(infile)) { - printf("Reached EOF while reading the first character of the input file!\n"); + fprintf(stderr, "Reached EOF while reading the first character of the input file!\n"); + free(word); return 4; } while(!feof(infile)) { if(isalpha(c)) { - word = realloc(word, word_length+2); // one for the new character, one for the null + rword = realloc(word, word_length+2); // one for the new character, one for the null + if(rword == NULL){ + free(word); + fprintf(stderr, "Unable to allocate memory\n"); + return 5; + } + word = rword; word[word_length] = c; word[word_length + 1] = '\0'; // duplicate addition with the next line, but possibly more readable word_length++;