Program: 78883
Project: 78883
Buggy source:
/** 
 * restore the state of this object from stream including the scope information, only if the scoped interface name is valid on this system
 */
private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
  NetworkInterface scope_ifname=null;
  if (getClass().getClassLoader() != null) {
    throw new SecurityException("String_Node_Str");
  }
  ObjectInputStream.GetField gf=s.readFields();
  byte[] ipaddress=(byte[])gf.get("String_Node_Str",null);
  int scope_id=(int)gf.get("String_Node_Str",-1);
  boolean scope_id_set=(boolean)gf.get("String_Node_Str",false);
  boolean scope_ifname_set=(boolean)gf.get("String_Node_Str",false);
  String ifname=(String)gf.get("String_Node_Str",null);
  if (ifname != null && !"String_Node_Str".equals(ifname)) {
    try {
      scope_ifname=NetworkInterface.getByName(ifname);
      if (scope_ifname == null) {
        scope_id_set=false;
        scope_ifname_set=false;
        scope_id=0;
      }
 else {
        scope_ifname_set=true;
        try {
          scope_id=deriveNumericScope(ipaddress,scope_ifname);
        }
 catch (        UnknownHostException e) {
        }
      }
    }
 catch (    SocketException e) {
    }
  }
  ipaddress=ipaddress.clone();
  if (ipaddress.length != INADDRSZ) {
    throw new InvalidObjectException("String_Node_Str" + ipaddress.length);
  }
  if (holder.getFamily() != IPv6) {
    throw new InvalidObjectException("String_Node_Str");
  }
  Inet6AddressHolder h=new Inet6AddressHolder(ipaddress,scope_id,scope_id_set,scope_ifname,scope_ifname_set);
  UNSAFE.putObject(this,FIELDS_OFFSET,h);
}

Fixed version (ground truth):
/** 
 * restore the state of this object from stream including the scope information, only if the scoped interface name is valid on this system
 */
private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
  NetworkInterface scope_ifname=null;
  if (getClass().getClassLoader() != null) {
    throw new SecurityException("String_Node_Str");
  }
  ObjectInputStream.GetField gf=s.readFields();
  byte[] ipaddress=(byte[])gf.get("String_Node_Str",null);
  int scope_id=gf.get("String_Node_Str",-1);
  boolean scope_id_set=gf.get("String_Node_Str",false);
  boolean scope_ifname_set=gf.get("String_Node_Str",false);
  String ifname=(String)gf.get("String_Node_Str",null);
  if (ifname != null && !"String_Node_Str".equals(ifname)) {
    try {
      scope_ifname=NetworkInterface.getByName(ifname);
      if (scope_ifname == null) {
        scope_id_set=false;
        scope_ifname_set=false;
        scope_id=0;
      }
 else {
        scope_ifname_set=true;
        try {
          scope_id=deriveNumericScope(ipaddress,scope_ifname);
        }
 catch (        UnknownHostException e) {
        }
      }
    }
 catch (    SocketException e) {
    }
  }
  ipaddress=ipaddress.clone();
  if (ipaddress.length != INADDRSZ) {
    throw new InvalidObjectException("String_Node_Str" + ipaddress.length);
  }
  if (holder.getFamily() != IPv6) {
    throw new InvalidObjectException("String_Node_Str");
  }
  Inet6AddressHolder h=new Inet6AddressHolder(ipaddress,scope_id,scope_id_set,scope_ifname,scope_ifname_set);
  UNSAFE.putObject(this,FIELDS_OFFSET,h);
}