    ctx.prompt(prompt, function retryPrompt(answers) {
      if (answers.length === 0)
        return ctx.reject(['keyboard-interactive']);
      nick = answers[0];
      if (nick.length > MAX_NAME_LEN) {
        return ctx.prompt('That nickname is too long.\n' + PROMPT_NAME,
                          retryPrompt);
      } else if (nick.length === 0) {
        return ctx.prompt('A nickname is required.\n' + PROMPT_NAME,
                          retryPrompt);
      }
      lowered = nick.toLowerCase();
      for (var i = 0; i < users.length; ++i) {
        if (users[i].name.toLowerCase() === lowered) {
          return ctx.prompt('That nickname is already in use.\n' + PROMPT_NAME,
                            retryPrompt);
        }
      }
      name = nick;
      ctx.accept();
    });
The software constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.