--- a/src/java.base/share/classes/java/net/InetAddress.java Wed Mar 28 08:42:45 2018 -0700
+++ b/src/java.base/share/classes/java/net/InetAddress.java Fri Mar 30 08:37:31 2018 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@
import java.io.ObjectStreamException;
import java.io.ObjectStreamField;
import java.io.IOException;
+import java.io.InvalidObjectException;
import java.io.ObjectInputStream;
import java.io.ObjectInputStream.GetField;
import java.io.ObjectOutputStream;
@@ -1727,8 +1728,11 @@
}
GetField gf = s.readFields();
String host = (String)gf.get("hostName", null);
- int address= gf.get("address", 0);
- int family= gf.get("family", 0);
+ int address = gf.get("address", 0);
+ int family = gf.get("family", 0);
+ if (family != IPv4 && family != IPv6) {
+ throw new InvalidObjectException("invalid address family type: " + family);
+ }
InetAddressHolder h = new InetAddressHolder(host, address, family);
UNSAFE.putObject(this, FIELDS_OFFSET, h);
}