Mercurial > hg > release > icedtea7-forest-2.4 > jdk
changeset 7254:ea6ec524d828
8029844: Enhance argument validation
Summary: make defensive copy of a varargs array
Reviewed-by: mchung, twisti, ahgross
author | jrose |
---|---|
date | Fri, 13 Dec 2013 18:03:41 -0800 |
parents | c7c231608e20 |
children | 54c9fea273a1 |
files | src/share/classes/java/lang/invoke/MethodHandles.java |
diffstat | 1 files changed, 2 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/java/lang/invoke/MethodHandles.java Wed Nov 13 17:51:30 2013 +0000 +++ b/src/share/classes/java/lang/invoke/MethodHandles.java Fri Dec 13 18:03:41 2013 -0800 @@ -1616,6 +1616,7 @@ */ public static MethodHandle permuteArguments(MethodHandle target, MethodType newType, int... reorder) { + reorder = reorder.clone(); checkReorder(reorder, newType, target.type()); return target.permuteArguments(newType, reorder); } @@ -1810,6 +1811,7 @@ throw newIllegalArgumentException("no argument type to remove"); ArrayList<Class<?>> ptypes = new ArrayList<>(oldType.parameterList()); ptypes.addAll(pos, valueTypes); + if (ptypes.size() != inargs) throw newIllegalArgumentException("valueTypes"); MethodType newType = MethodType.methodType(oldType.returnType(), ptypes); return target.dropArguments(newType, pos, dropped); }