Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quic: address new coverity warning #48384

Closed
wants to merge 1 commit into from
Closed

Conversation

mhdawson
Copy link
Member

@mhdawson mhdawson commented Jun 7, 2023

  • address coverity warning about unitialized variable

- address coverity warning about unitialized variable

Signed-off-by: Michael Dawson <mdawson@devrus.com>
@nodejs-github-bot nodejs-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. quic Issues and PRs related to the QUIC implementation / HTTP/3. labels Jun 7, 2023
@mhdawson
Copy link
Member Author

mhdawson commented Jun 7, 2023

Coverity report. There are other reports in recent quic code but will review/address as I have time of other people don't beat me to it.

364  auto& state = BindingData::Get(env);
365  auto params = value.As<Object>();
   	3. var_decl: Declaring variable options.
366  Options options;
367
368#define SET(name)                                                              \
369  SetOption<Session::Options, &Session::Options::name>(                        \
370      env, &options, params, state.name##_string())
371
   	
CID 318441 (#1 of 1): Uninitialized scalar variable (UNINIT)
4. uninit_use_in_call: Using uninitialized value options. Field options.transport_params.preferred_address_ipv4._M_payload._M_payload is uninitialized when calling SetOption. [[show details](https://scan9.scan.coverity.com/eventId=9078721-4&modelId=9078721-0&fileInstanceId=114681342&filePath=%2Fsrc%2Fquic%2Fsession.cc&fileStart=215&fileEnd=226)]
372  if (!SET(version) || !SET(min_version) || !SET(preferred_address_strategy) ||
373      !SET(transport_params) || !SET(tls_options) ||
374      !SET(application_options) || !SET(qlog)) {
375    return Nothing<Options>();
376  }
377

@debadree25 debadree25 added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Jun 8, 2023
@debadree25 debadree25 added the request-ci Add this label to start a Jenkins CI on a PR. label Jun 8, 2023
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jun 8, 2023
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@@ -363,7 +363,7 @@ Maybe<Session::Options> Session::Options::From(Environment* env,

auto& state = BindingData::Get(env);
auto params = value.As<Object>();
Options options;
Options options = Options();
Copy link
Member

Choose a reason for hiding this comment

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

This seems odd. I might be missing something, but the explicit constructor call Options() should perform the same initialization as the implicit call in Options options, and assignment should not change anything either.

Copy link
Member Author

Choose a reason for hiding this comment

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

@tniessen I'm not 100% sure this will fix the warning as I don't know that we can run coverity locally. I think other similar reports have been resolved by a similar fix through. Do you have an alternate suggestion?

Copy link
Member Author

Choose a reason for hiding this comment

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

@tniessen I'll commit to looking to make sure it resolved the report after this lands. If it does not I'll figure out some other change that should. I'm thinking that is the easiest way to figure out if it does/does not unless you have another suggestion.

Copy link
Member

Choose a reason for hiding this comment

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

@mhdawson Sorry, I missed the first ping. This still seems odd to me, especially given that coverity complains about options.transport_params.preferred_address_ipv4._M_payload._M_payload (that is, a field in a class that is not Options), but this PR has the necessary approvals to land and I won't block it.

Copy link
Member Author

Choose a reason for hiding this comment

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

@tniessen you were correct. My change did not resolve the Coverity report. Will investigate further to better understand what is being reported.

mhdawson added a commit that referenced this pull request Jun 12, 2023
- address coverity warning about unitialized variable

Signed-off-by: Michael Dawson <mdawson@devrus.com>

PR-URL: #48384
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
@mhdawson
Copy link
Member Author

Landed in ac6f594

@mhdawson mhdawson closed this Jun 12, 2023
@RafaelGSS RafaelGSS added dont-land-on-v16.x dont-land-on-v18.x PRs that should not land on the v18.x-staging branch and should not be released in v18.x. dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. labels Jul 3, 2023
@RafaelGSS
Copy link
Member

This PR depends on #47927 which didn't land on v20.x.

Ceres6 pushed a commit to Ceres6/node that referenced this pull request Aug 14, 2023
- address coverity warning about unitialized variable

Signed-off-by: Michael Dawson <mdawson@devrus.com>

PR-URL: nodejs#48384
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Ceres6 pushed a commit to Ceres6/node that referenced this pull request Aug 14, 2023
- address coverity warning about unitialized variable

Signed-off-by: Michael Dawson <mdawson@devrus.com>

PR-URL: nodejs#48384
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. c++ Issues and PRs that require attention from people who are familiar with C++. dont-land-on-v18.x PRs that should not land on the v18.x-staging branch and should not be released in v18.x. dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. needs-ci PRs that need a full CI run. quic Issues and PRs related to the QUIC implementation / HTTP/3.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants