Why am I having a memory leakage? It seems like the pic is being closed by fclose(pic);
typedef struct user {
    char name[MAX_NAME];
    char profile_pic[MAX_NAME];  // This is a *filename*, not the file contents.
    struct post *first_post;
    struct user *friends[MAX_FRIENDS];
    struct user *next;
} User;

int print_user(const User *user) {
    if (user == NULL) {
        return 1;
    } else {

        // Prints the profile_pic
        FILE *pic;

        if (user->profile_pic[0] != '\0') {
            pic = fopen(user->profile_pic, "r");
            char line[100];

            if (pic != NULL) {
                while (fgets(line, 100, pic) != NULL) {
                    printf("%s", line);
                }
                printf("\n");
            }
        }
        fclose(pic);
    }