what does curr point to after line 4 is executed? get_size_buf_lu loops through the linked list and perfoms ->next operations on curr
char* list_users(const User* curr) {
    printf("User List\n");
    // let's go through the list once to know exactly how much space we need to allocate
    int username_chars = get_size_buff_lu(curr);
    char* buff = malloc(sizeof(char) * (username_chars + 2));  // add 2 for the \r\n?
    int max_chars = username_chars;

    while (curr != NULL) {
        int written_chars = snprintf(buff, max_chars, "%s", curr->name);
        if (written_chars < 0 || written_chars > username_chars) {
            perror("writting to buffer with snprintf");
        }
        max_chars -= written_chars;
        buff += written_chars;
        curr = curr->next;
    }
    // add network newline
    buff[username_chars - 1] = '\r';
    buff[username_chars] = '\n';

    return buff;
}
