  function onClose() {
    if (this === client) {
      assert(!clientClose,
             msg('Received multiple close events for client'));
      clientClose = true;
    } else {
      assert(!serverClose,
             msg('Received multiple close events for server'));
      serverClose = true;
    }
    if (clientClose
        && serverClose
        && !getParamNames(self.run.origFn || self.run).includes('next')) {
      clearTimeout(timer);
      next();
    }
  }
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.