    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 (const user of users) {
        if (user.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.