function formcheck_Timetable_course_F4(this_DET) {
  var this_button_id = this_DET.id;

  var frmvalidator = new Validator("F4", this_button_id);

  var subject_id = document.getElementById("subject_id_div").value;
  if (subject_id == "new") {
    frmvalidator.addValidation(
      "tables[course_subjects][new][TITLE]",
      "req",
      "Please enter the subject name"
    );
    frmvalidator.addValidation(
      "tables[course_subjects][new][TITLE]",
      "maxlen=100",
      "Max length for subject is 100 characters"
    );
  } else {
    frmvalidator.addValidation(
      "inputtables[course_subjects][" + subject_id + "][TITLE]",
      "req",
      "Please enter the course title "
    );
    frmvalidator.addValidation(
      "inputtables[course_subjects][" + subject_id + "][TITLE]",
      "maxlen=100",
      "Max length for course title is 100 characters"
    );
  }
}
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.