I think I called malloc twice but I don't know where
int create_user(const char *name, User **user_ptr_add) {
    User *this_user = malloc(sizeof(User));
    this_user->next = NULL;
    this_user->first_post = NULL;
    strcpy(this_user->profile_pic, "\0");
    for (int i = 0; i < MAX_FRIENDS; i++) {
        this_user->friends[i] = NULL;
    }

    // Case 2: Check if name can be fully copied over. 
    if (strlen(name) > sizeof(this_user->name) - 1) {
        return 2;}
    
    // Case 1: User exists in linked list.
    if (find_user(name, *user_ptr_add) != NULL) {
        return 1;
    } 
    
    strncpy(this_user->name, name, sizeof(this_user->name));
    this_user->name[31] = '\0';

    // Case 0: (a) Linked list is empty
    if (*user_ptr_add == NULL) {
        *user_ptr_add = this_user;
    } else {
        // Case 0: (b) Linked list is not empty
         User *curr = *user_ptr_add;
          while (curr->next != NULL) {
             curr = curr->next;
        } curr->next = this_user;
    }
    return 0;
}