given that MAXLINE = 256. fgets on line 7 is reading too much than expected. for a line "main : linked_list.o main.o\n" it should only read "main : linked_list.o main.o" but its giving garbage after that
Rule *parse_file(FILE *fp) {
    // Implement this function and remove the stubbed return statement below.
    char buffer_line[MAXLINE];
    Rule* first_rule_ptr = NULL;
    Rule *current_rule = NULL;
    //fgets(buffer_line, MAXLINE, fp)
    while (fgets(buffer_line, MAXLINE, fp)){
        .....