Program: 72358
Project: 72358
Buggy source:
/** 
 * Read results of a ping on a Linux or Mac platform. If a device is found, add a JSON object containing the device IP address and name to _ipMap.
 * @param process  The process that is executing the ping.
 * @param testIP  The IP address to base the sweep on.
 */
private void _readPingLinux(Process process,String testIP){
  JSONObject device=null;
  try {
    BufferedReader stdOut=null;
    try {
      stdOut=new BufferedReader(new InputStreamReader(process.getInputStream()));
      String line;
      while ((line=stdOut.readLine()) != null) {
        if (_debugging) {
          System.out.println("String_Node_Str" + testIP + "String_Node_Str"+ line);
        }
        int found=line.indexOf("String_Node_Str");
        if (found < 0) {
          found=line.indexOf("String_Node_Str");
          if (found < 0) {
            found=line.indexOf("String_Node_Str");
            if (found < 0) {
              found=line.indexOf("String_Node_Str");
            }
          }
        }
        if (found > 0) {
          if (_debugging) {
            System.out.println("String_Node_Str" + testIP);
          }
          try {
            if (testIP.equalsIgnoreCase(_hostIP)) {
              device=new JSONObject("String_Node_Str" + testIP + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
            }
 else {
              device=new JSONObject("String_Node_Str" + testIP + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
            }
          }
 catch (          JSONException e) {
            System.err.println("String_Node_Str" + "String_Node_Str" + testIP);
          }
        }
      }
    }
  finally {
      if (stdOut != null) {
        stdOut.close();
      }
    }
  }
 catch (  IOException e) {
    System.err.println("String_Node_Str" + testIP);
  }
  if (device != null) {
    _ipMap.put(testIP,device);
  }
}

Fixed version (ground truth):
/** 
 * Read results of a ping on a Linux or Mac platform. If a device is found, add a JSON object containing the device IP address and name to _ipMap.
 * @param process  The process that is executing the ping.
 * @param testIP  The IP address to base the sweep on.
 */
private void _readPingLinux(Process process,String testIP){
  JSONObject device=null;
  try {
    BufferedReader stdOut=null;
    try {
      stdOut=new BufferedReader(new InputStreamReader(process.getInputStream(),StandardCharsets.UTF_8));
      String line;
      while ((line=stdOut.readLine()) != null) {
        if (_debugging) {
          System.out.println("String_Node_Str" + testIP + "String_Node_Str"+ line);
        }
        int found=line.indexOf("String_Node_Str");
        if (found < 0) {
          found=line.indexOf("String_Node_Str");
          if (found < 0) {
            found=line.indexOf("String_Node_Str");
            if (found < 0) {
              found=line.indexOf("String_Node_Str");
            }
          }
        }
        if (found > 0) {
          if (_debugging) {
            System.out.println("String_Node_Str" + testIP);
          }
          try {
            if (testIP.equalsIgnoreCase(_hostIP)) {
              device=new JSONObject("String_Node_Str" + testIP + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
            }
 else {
              device=new JSONObject("String_Node_Str" + testIP + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
            }
          }
 catch (          JSONException e) {
            System.err.println("String_Node_Str" + "String_Node_Str" + testIP);
          }
        }
      }
    }
  finally {
      if (stdOut != null) {
        stdOut.close();
      }
    }
  }
 catch (  IOException e) {
    System.err.println("String_Node_Str" + testIP);
  }
  if (device != null) {
    _ipMap.put(testIP,device);
  }
}