Skip to content

Commit

Permalink
8309727: Assert privileges while reading the jdk.incubator.vector.VEC…
Browse files Browse the repository at this point in the history
…TOR_ACCESS_OOB_CHECK system property

Reviewed-by: rriggs, uschindler, psandoz
  • Loading branch information
ChrisHegarty committed Jun 9, 2023
1 parent 7d6f97d commit cee5724
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,14 @@

import jdk.internal.vm.annotation.ForceInline;

import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Objects;

/*non-public*/ class VectorIntrinsics {
static final int VECTOR_ACCESS_OOB_CHECK = Integer.getInteger("jdk.incubator.vector.VECTOR_ACCESS_OOB_CHECK", 2);
@SuppressWarnings("removal")
static final int VECTOR_ACCESS_OOB_CHECK = AccessController.doPrivileged((PrivilegedAction<Integer>) () ->
Integer.getInteger("jdk.incubator.vector.VECTOR_ACCESS_OOB_CHECK", 2));

@ForceInline
static void requireLength(int haveLength, int length) {
Expand Down
5 changes: 4 additions & 1 deletion test/jdk/jdk/incubator/vector/VectorRuns.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@

/**
* @test
* @bug 8309727
* @modules jdk.incubator.vector
* @run main VectorRuns
* @run main/othervm/java.security.policy=empty_security.policy VectorRuns
*/

public class VectorRuns {
Expand Down Expand Up @@ -68,7 +71,7 @@ static int countRunAscendingVector(int[] a) {
if (r >= a.length)
return a.length;

int length = a.length & (species.length() - 1);
int length = species.loopBound(a.length);
if (length == a.length) length -= species.length();
while (r < length) {
IntVector vl = IntVector.fromArray(species, a, r - 1);
Expand Down
25 changes: 25 additions & 0 deletions test/jdk/jdk/incubator/vector/empty_security.policy
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//
// Copyright (c) 2023, 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
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
//
// This code is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// version 2 for more details (a copy is included in the LICENSE file that
// accompanied this code).
//
// You should have received a copy of the GNU General Public License version
// 2 along with this work; if not, write to the Free Software Foundation,
// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
//
// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
// or visit www.oracle.com if you need additional information or have any
// questions.
//

// This policy is used by tests not requiring permissions, to assert that the
// JDK implementation has the correct privileged blocks.

3 comments on commit cee5724

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChrisHegarty
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/backport jdk21

@openjdk
Copy link

@openjdk openjdk bot commented on cee5724 Jun 9, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChrisHegarty the backport was successfully created on the branch ChrisHegarty-backport-cee5724d in my personal fork of openjdk/jdk21. To create a pull request with this backport targeting openjdk/jdk21:master, just click the following link:

➡️ Create pull request

The title of the pull request is automatically filled in correctly and below you find a suggestion for the pull request body:

Hi all,

This pull request contains a backport of commit cee5724d from the openjdk/jdk repository.

The commit being backported was authored by Chris Hegarty on 9 Jun 2023 and was reviewed by Roger Riggs, Uwe Schindler and Paul Sandoz.

Thanks!

If you need to update the source branch of the pull then run the following commands in a local clone of your personal fork of openjdk/jdk21:

$ git fetch https://github.com/openjdk-bots/jdk21.git ChrisHegarty-backport-cee5724d:ChrisHegarty-backport-cee5724d
$ git checkout ChrisHegarty-backport-cee5724d
# make changes
$ git add paths/to/changed/files
$ git commit --message 'Describe additional changes made'
$ git push https://github.com/openjdk-bots/jdk21.git ChrisHegarty-backport-cee5724d

Please sign in to comment.