Program: 28271
Project: 28271
Buggy source:
/** 
 * Invoke ssh-keygen using ProcessManager API
 */
private boolean generateKeyPair() throws IOException {
  String keygenCmd=findSSHKeygen();
  if (logger.isLoggable(Level.FINER)) {
    logger.finer("String_Node_Str" + keygenCmd + "String_Node_Str");
  }
  if (!setupSSHDir()) {
    throw new IOException("String_Node_Str");
  }
  StringBuffer k=new StringBuffer();
  List<String> cmdLine=new ArrayList<String>();
  cmdLine.add(keygenCmd);
  k.append(keygenCmd);
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  if (rawKeyPassPhrase != null && rawKeyPassPhrase.length() > 0) {
    cmdLine.add(rawKeyPassPhrase);
    k.append("String_Node_Str").append(getPrintablePassword(rawKeyPassPhrase));
  }
 else {
    if (OS.isWindows()) {
      cmdLine.add("String_Node_Str");
      k.append("String_Node_Str").append("String_Node_Str");
    }
 else {
      cmdLine.add("String_Node_Str");
      k.append("String_Node_Str").append("String_Node_Str");
    }
  }
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  cmdLine.add(keyFile);
  k.append("String_Node_Str").append(keyFile);
  ProcessManager pm=new ProcessManager(cmdLine);
  if (logger.isLoggable(Level.FINER)) {
    logger.finer("String_Node_Str" + k);
  }
  pm.setTimeoutMsec(DEFAULT_TIMEOUT_MSEC);
  if (logger.isLoggable(Level.FINER))   pm.setEcho(true);
 else   pm.setEcho(false);
  int exit;
  try {
    exit=pm.execute();
  }
 catch (  ProcessManagerException ex) {
    logger.fine("String_Node_Str" + ex.getMessage());
    exit=1;
  }
  if (exit == 0) {
    logger.info(keygenCmd + "String_Node_Str" + keyFile);
  }
 else {
    if (logger.isLoggable(Level.FINER)) {
      logger.finer(pm.getStderr());
    }
    logger.info(keygenCmd + "String_Node_Str");
  }
  return (exit == 0) ? true : false;
}

Fixed version (ground truth):
/** 
 * Invoke ssh-keygen using ProcessManager API
 */
private boolean generateKeyPair() throws IOException {
  String keygenCmd=findSSHKeygen();
  if (logger.isLoggable(Level.FINER)) {
    logger.finer("String_Node_Str" + keygenCmd + "String_Node_Str");
  }
  if (!setupSSHDir()) {
    throw new IOException("String_Node_Str");
  }
  StringBuffer k=new StringBuffer();
  List<String> cmdLine=new ArrayList<String>();
  cmdLine.add(keygenCmd);
  k.append(keygenCmd);
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  if (rawKeyPassPhrase != null && rawKeyPassPhrase.length() > 0) {
    cmdLine.add(rawKeyPassPhrase);
    k.append("String_Node_Str").append(getPrintablePassword(rawKeyPassPhrase));
  }
 else {
    if (OS.isWindows()) {
      cmdLine.add("String_Node_Str");
      k.append("String_Node_Str").append("String_Node_Str");
    }
 else {
      cmdLine.add("String_Node_Str");
      k.append("String_Node_Str").append("String_Node_Str");
    }
  }
  cmdLine.add("String_Node_Str");
  k.append("String_Node_Str").append("String_Node_Str");
  cmdLine.add(keyFile);
  k.append("String_Node_Str").append(keyFile);
  ProcessManager pm=new ProcessManager(cmdLine);
  if (logger.isLoggable(Level.FINER)) {
    logger.finer("String_Node_Str" + k);
  }
  pm.setTimeoutMsec(DEFAULT_TIMEOUT_MSEC);
  if (logger.isLoggable(Level.FINER))   pm.setEcho(true);
 else   pm.setEcho(false);
  int exit;
  try {
    exit=pm.execute();
  }
 catch (  ProcessManagerException ex) {
    if (logger.isLoggable(Level.FINE)) {
      logger.fine("String_Node_Str" + ex.getMessage());
    }
    exit=1;
  }
  if (exit == 0) {
    logger.info(keygenCmd + "String_Node_Str" + keyFile);
  }
 else {
    if (logger.isLoggable(Level.FINER)) {
      logger.finer(pm.getStderr());
    }
    logger.info(keygenCmd + "String_Node_Str");
  }
  return (exit == 0) ? true : false;
}