Skip to content

8307855: update for deprecated sprintf for src/utils#13915

Closed
XueleiFan wants to merge 2 commits intoopenjdk:masterfrom
XueleiFan:JDK-8307855
Closed

8307855: update for deprecated sprintf for src/utils#13915
XueleiFan wants to merge 2 commits intoopenjdk:masterfrom
XueleiFan:JDK-8307855

Conversation

@XueleiFan
Copy link
Member

@XueleiFan XueleiFan commented May 10, 2023

Hi,

May I have this update reviewed?

The sprintf is deprecated in Xcode 14, and Microsoft Virtual Studio, because of security concerns. The issue was addressed in JDK-8296812 for building failure, and JDK-8299378/JDK-8299635/JDK-8301132 for testing issues . This is a break-down update for sprintf uses in the src/utils directory.

Thanks,
Xuelei


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8307855: update for deprecated sprintf for src/utils

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/13915/head:pull/13915
$ git checkout pull/13915

Update a local copy of the PR:
$ git checkout pull/13915
$ git pull https://git.openjdk.org/jdk.git pull/13915/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 13915

View PR using the GUI difftool:
$ git pr show -t 13915

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/13915.diff

Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented May 10, 2023

👋 Welcome back xuelei! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented May 10, 2023

@XueleiFan The following labels will be automatically applied to this pull request:

  • build
  • hotspot-compiler

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added build build-dev@openjdk.org hotspot-compiler hotspot-compiler-dev@openjdk.org labels May 10, 2023
@XueleiFan XueleiFan marked this pull request as ready for review May 10, 2023 20:47
@openjdk openjdk bot added the rfr Pull request is ready for review label May 10, 2023
@mlbridge
Copy link

mlbridge bot commented May 10, 2023

Webrevs

Copy link
Member

@TobiHartmann TobiHartmann left a comment

Choose a reason for hiding this comment

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

Looks good to me otherwise.

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved.
3* Copyright (c) 2008, 2023, Oracle and/or its affiliates. All rights reserved.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
3* Copyright (c) 2008, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2023, Oracle and/or its affiliates. All rights reserved.

Copy link
Member Author

Choose a reason for hiding this comment

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

Oops. Thank you for the catch!

@openjdk
Copy link

openjdk bot commented May 12, 2023

@XueleiFan This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8307855: update for deprecated sprintf for src/utils

Reviewed-by: thartmann

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 44 new commits pushed to the master branch:

  • 39dc40f: 8305081: Remove finalize() from test/hotspot/jtreg/compiler/runtime/Test8168712
  • f7bbbc6: 8307808: G1: Remove partial object-count report after gc
  • 13a3fce: 8307961: java/foreign/enablenativeaccess/TestEnableNativeAccess.java fails with ShouldNotReachHere
  • f09a0f5: 8307806: Rename Atomic::fetch_and_add and friends
  • b6bcbc0: 8305770: os::Linux::available_memory() should refer MemAvailable in /proc/meminfo
  • e1e758a: 8305083: Remove finalize() from test/hotspot/jtreg/vmTestbase/nsk/share/ and /jpda that are used in serviceability/dcmd/framework tests
  • 1ce1611: 8307518: Remove G1 workaround in jstat about zero sized generation sizes
  • e32de7e: 8306667: RISC-V: Fix storeImmN0 matching rule by using zr register
  • f3bd031: 8307891: ProblemList gtest/NMTGtest.java subtests on aix
  • 5f1f946: 8307520: set minimum supported CPU architecture to Power8 on AIX
  • ... and 34 more: https://git.openjdk.org/jdk/compare/9af1787ebe842bcfbf4a03a9deefe19bbd1ee87d...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label May 12, 2023
@XueleiFan
Copy link
Member Author

/integrate

@openjdk
Copy link

openjdk bot commented May 12, 2023

Going to push as commit 4b0f421.
Since your change was applied there have been 44 commits pushed to the master branch:

  • 39dc40f: 8305081: Remove finalize() from test/hotspot/jtreg/compiler/runtime/Test8168712
  • f7bbbc6: 8307808: G1: Remove partial object-count report after gc
  • 13a3fce: 8307961: java/foreign/enablenativeaccess/TestEnableNativeAccess.java fails with ShouldNotReachHere
  • f09a0f5: 8307806: Rename Atomic::fetch_and_add and friends
  • b6bcbc0: 8305770: os::Linux::available_memory() should refer MemAvailable in /proc/meminfo
  • e1e758a: 8305083: Remove finalize() from test/hotspot/jtreg/vmTestbase/nsk/share/ and /jpda that are used in serviceability/dcmd/framework tests
  • 1ce1611: 8307518: Remove G1 workaround in jstat about zero sized generation sizes
  • e32de7e: 8306667: RISC-V: Fix storeImmN0 matching rule by using zr register
  • f3bd031: 8307891: ProblemList gtest/NMTGtest.java subtests on aix
  • 5f1f946: 8307520: set minimum supported CPU architecture to Power8 on AIX
  • ... and 34 more: https://git.openjdk.org/jdk/compare/9af1787ebe842bcfbf4a03a9deefe19bbd1ee87d...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label May 12, 2023
@openjdk openjdk bot closed this May 12, 2023
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels May 12, 2023
@openjdk
Copy link

openjdk bot commented May 12, 2023

@XueleiFan Pushed as commit 4b0f421.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@XueleiFan XueleiFan deleted the JDK-8307855 branch May 12, 2023 14:53
Copy link

@kimbarrett kimbarrett left a comment

Choose a reason for hiding this comment

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

A couple of issues noticed after this PR has been integrated.

const decode_func_vtype decode_func_virtual_address = &decode_instructions_virtual;
const decode_func_stype decode_func_address = &decode_instructions;

#define remaining_buflen(buf, bufsize, p) ((bufsize) - ((p) - (buf)))

Choose a reason for hiding this comment

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

This shouldn't be a macro. Among other reasons, see the style guide.

Copy link
Member Author

@XueleiFan XueleiFan May 15, 2023

Choose a reason for hiding this comment

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

May I have an reference to the style guide?

Never mind, I found it in the doc. Thanks!

if (delays) sprintf(p += strlen(p), " delay='%d'", delays);
if (type) snprintf(p += strlen(p), remaining_buflen(buf, bufsize, p), " type='%s'", type);
if (dsize) snprintf(p += strlen(p), remaining_buflen(buf, bufsize, p), " dsize='%d'", dsize);
if (delays) snprintf(p += strlen(p), remaining_buflen(buf, bufsize, p), " delay='%d'", delays);

Choose a reason for hiding this comment

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

What is the value for p that is used in the call to remaining_buflen?
It is being assumed to be the value after the assignment by the first
argument. However, according to the standard, it is unspecified, and
the whole snprintf call invokes UB. This is because there aren't any
sequence points between the update of p in the first argument and that
reference. (C++17 changes this, but we aren't using C++17 yet.)

Copy link
Member Author

@XueleiFan XueleiFan May 15, 2023

Choose a reason for hiding this comment

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

I missed the point that the buffer is not empty, and has been used. Thank you very much!

@TobiHartmann
Copy link
Member

The change is also missing a second review. I'm backing it out for now with #13975. Let's redo with JDK-8308071.

Thanks,
Tobias

@XueleiFan
Copy link
Member Author

The change is also missing a second review. I'm backing it out for now with #13975. Let's redo with JDK-8308071.

Thanks, Tobias

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build build-dev@openjdk.org hotspot-compiler hotspot-compiler-dev@openjdk.org integrated Pull request has been integrated

Development

Successfully merging this pull request may close these issues.

3 participants