Não é possível comparar tokens

Criei um código para tokenizar os dados no arquivo usando C. Quero imprimir alguns dados se o token atual for igual aSIOL. Meu problema éstrcmp não vai funcionar. Você consegue identificar algum erro? Aqui está o código. obrigado pela ajuda

int main()
{
    FILE* fp;

    char  line[1024];
    char *val1;

    fp = fopen("sample1.txt" , "r");
    while (fgets(line, sizeof(line), fp) != NULL)
    {
        val1 = strtok(line, " ");
        if (strcmp(val1,"SIOL")==0)
        {
            printf("Sucess!");
            return 0;
        }
        else
        {
            while(val1)
            {
                printf("%s\n", val1);
                val1=strtok(NULL, " ");
            }
        }
    }
}

sample1.txt assim:

HAHA
SIOL
Hello World!
SIOL
123 4 345 65 756 867 789797
Hello World

questionAnswers(1)

yourAnswerToTheQuestion