will this give me segmentation fault?

if (token[0] == '\t') {
    printf("true\n");
    printf("%s\n", token);

    token = strtok(NULL, " ");

    a = malloc(sizeof(Action));
    char** arg = a->args;
    int i = 0;
    while (token != NULL) {
        arg[i] = strdup(token);
        token = strtok(NULL, " ");
        i++;
    }