why is this only calling process_args on the second input that i read, and not the first one?
int read_from(int client_fd, struct sockname *users, User *user_list) {
    int fd = client_fd;

    char *input = partial_read(fd);

    int num_read = strlen(input);

    char *cmd_argv[INPUT_ARG_MAX_NUM];
    int cmd_argc = tokenize(input, cmd_argv);
    printf("returned input!\n");

    printf("%d\n", cmd_argc);

    if (cmd_argc > 0 && process_args(cmd_argc, cmd_argv, &user_list) == -1) {
        printf("hello");
    }

    if (num_read == 0) {
        client_fd = -1;
        return fd;
    }

    return 0;
}