Skip to content

permission: address coverity warning - #50215

Closed
mhdawson wants to merge 1 commit into
nodejs:mainfrom
mhdawson:coverity40
Closed

permission: address coverity warning#50215
mhdawson wants to merge 1 commit into
nodejs:mainfrom
mhdawson:coverity40

Conversation

@mhdawson

Copy link
Copy Markdown
Member

The latest version of coverity has suggestions on how to improve formance. Address one of these suggestions.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. labels Oct 17, 2023
@mhdawson

Copy link
Copy Markdown
MemberAuthor

Coverity has a new set of warnings. Seeing what we think about fixing those by starting with this one. If there is a possitive response I'd plan to fix in larget baches. The warning was:

212if (is_wildcard_node || is_last_char) {
213 std::string node_path = path.substr(parent_node_prefix_len, i);
CID329770 (#1 of 1): COPY_INSTEAD_OF_MOVE (COPY_INSTEAD_OF_MOVE)
1. copy_constructor_call: node_path is passed-by-value as parameter to CreateChild when it could be moved instead.
Use std::move(node_path) instead of node_path.
214 current_node = current_node->CreateChild(node_path);

@RafaelGSS

Copy link
Copy Markdown
Member

Coverity has a new set of warnings. Seeing what we think about fixing those by starting with this one. If there is a possitive response I'd plan to fix in larget baches. The warning was:

212if (is_wildcard_node || is_last_char) {
213 std::string node_path = path.substr(parent_node_prefix_len, i);
CID329770 (#1 of 1): COPY_INSTEAD_OF_MOVE (COPY_INSTEAD_OF_MOVE)
1. copy_constructor_call: node_path is passed-by-value as parameter to CreateChild when it could be moved instead.
Use std::move(node_path) instead of node_path.
214 current_node = current_node->CreateChild(node_path);

Which compiler are you using? I didn't get these warnings building on macOS

➜ nodejs.org git:(v21-release) ✗ clang -v
Apple clang version 14.0.3 (clang-1403.0.22.14.1)

@mhdawson

Copy link
Copy Markdown
MemberAuthor

@RafaelGSS they are not from the compiler from but our Coverity static analysis - https://scan.coverity.com/projects/node-js

Comment threadsrc/permission/fs_permission.cc Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't really change anything (except maybe shut up coverity) because CreateChild takes a value, not a reference. What you want instead is this:

diff --git a/src/permission/fs_permission.h b/src/permission/fs_permission.h
index 244e95727a..80374a08c7 100644
--- a/src/permission/fs_permission.h+++ b/src/permission/fs_permission.h@@ -31,7 +31,7 @@ class FSPermission final : public PermissionBase {
Node() : wildcard_child(nullptr), is_leaf(false) {}
- Node* CreateChild(std::string prefix) {+ Node* CreateChild(const std::string& prefix) {
if (prefix.empty() && !is_leaf) {
is_leaf = true;
return this;

Or Node* CreateChild(std::string&& prefix) { + std::move(...). Look at other call sites to determine which is most appropriate.

@mhdawson

Copy link
Copy Markdown
MemberAuthor

@bnoordhuis thanks, updated

@RafaelGSS

Copy link
Copy Markdown
Member

@mhdawson can you rebase?

The latest version of coverity has suggestions on how
to improve formance. Address one of these suggestions.
Signed-off-by: Michael Dawson <midawson@redhat.com>
@mhdawson

Copy link
Copy Markdown
MemberAuthor

@RafaelGSS rebased on squashed commits

@mhdawsonmhdawson added the request-ci Add this label to start a Jenkins CI on a PR. label Oct 25, 2023
@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Oct 25, 2023
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

mhdawson added a commit that referenced this pull request Oct 27, 2023
The latest version of coverity has suggestions on how
to improve formance. Address one of these suggestions.
Signed-off-by: Michael Dawson <midawson@redhat.com>
PR-URL: #50215
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
@mhdawson

Copy link
Copy Markdown
MemberAuthor

Landed in 3c1b4b3

targos pushed a commit that referenced this pull request Nov 11, 2023
The latest version of coverity has suggestions on how
to improve formance. Address one of these suggestions.
Signed-off-by: Michael Dawson <midawson@redhat.com>
PR-URL: #50215
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
@targostargos mentioned this pull request Nov 12, 2023
UlisesGascon pushed a commit that referenced this pull request Dec 11, 2023
The latest version of coverity has suggestions on how
to improve formance. Address one of these suggestions.
Signed-off-by: Michael Dawson <midawson@redhat.com>
PR-URL: #50215
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
@UlisesGasconUlisesGascon mentioned this pull request Dec 12, 2023
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mhdawson@nodejs-github-bot@RafaelGSS@bnoordhuis@benjamingr@marco-ippolito