rem: nexttrack = get_track(tracknum, argc, argv);
add: if (tracknum <= argc) { nexttrack = get_track(tracknum, argc, argv); }
context: int main(int argc, char *argv[]){  eci_handle_t eci = NULL;  int i, res = 0, tracknum = 1;  const char* nexttrack = NULL;  for(i = 1; i < argc; i++) { res += process_option(argv[i]); }  tracknum += ecaplay_skip;  nexttrack = get_track(tracknum, argc, argv);  if (res == 0) {    setup_signal_handling();    if (nexttrack != NULL) {      set_track_to_chainsetup(&eci, nexttrack);    }    while(nexttrack != NULL) {      unsigned int timeleft = ECAPLAY_TIMEOUT;      while(timeleft > 0) {	timeleft = sleep(timeleft);	if (timeleft > 0 && ecaplay_skip_flag > 1) {	  fprintf(stderr, "\n(ecaplay) Caught an exception. Exiting...\n");	  return 0;	}      }      if (ecaplay_skip_flag == 0) {	eci_command_r(eci, "engine-status");      }      if (ecaplay_skip_flag != 0 || strcmp(eci_last_string_r(eci), "running") != 0) {	ecaplay_skip_flag = 0;	nexttrack = get_track(++tracknum, argc, argv);	if (nexttrack != NULL) {	  eci_cleanup_r(eci);	  set_track_to_chainsetup(&eci, nexttrack);	}	else {	  break;	}      }    }      fprintf(stderr, "exiting...\n");      eci_command_r(eci, "stop");    eci_command_r(eci, "cs-disconnect");    eci_cleanup_r(eci);  }  return res;}