Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-20559

hudson.Launcher:ProcStarter::envs() may throw NPE

    XMLWordPrintable

Details

    Description

      ProcStarter::envs() calls envs.clone(), but does not check envs variable for null. BTW, the variable may be null in the following case (see JENKINS-19506):

      • There are several wrappers
      • One of wrappers triggers remote call (Launcher::launch()) in setUp() or decorateLauncher() methods to setup variables (example: android-emulator) => it will make all other launchers to provide their environment variables
      • One of other wrappers retrieves ProcStarter.envs() in setUp() or decorateLauncher()
      • envs are empty for nested call => execution of other wrapper causes NPE inside core

      Attachments

        Issue Links

          Activity

            danielbeck Daniel Beck added a comment -

            Is this serious and safe enough for LTS inclusion?

            danielbeck Daniel Beck added a comment - Is this serious and safe enough for LTS inclusion?
            oleg_nenashev Oleg Nenashev added a comment - The functional change: https://github.com/jenkinsci/jenkins/commit/ef943a3ee69529a9f41353f134043ed3363f12e0 It's definitely safe
            danielbeck Daniel Beck added a comment -

            Nominating ef943a3ee69529a9f41353f134043ed3363f12e0 for LTS.

            danielbeck Daniel Beck added a comment - Nominating ef943a3ee69529a9f41353f134043ed3363f12e0 for LTS.

            Code changed in jenkins
            User: Oleg Nenashev
            Path:
            core/src/main/java/hudson/Launcher.java
            http://jenkins-ci.org/commit/jenkins/1273668ba3b47fd344405ba4c49ec5a83ea9b508
            Log:
            [FIXED JENKINS-20559] - ProcStarter: Check for null before cloning of environment variables list

            Resolves https://issues.jenkins-ci.org/browse/JENKINS-20559
            BTW, I also need to add some tests to "Test Harness" in order to improve coverage of nested operations.
            These test require a fix for https://issues.jenkins-ci.org/browse/JENKINS-19454

            Signed-off-by: Oleg Nenashev <nenashev@synopsys.com>
            (cherry picked from commit ef943a3ee69529a9f41353f134043ed3363f12e0)

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: core/src/main/java/hudson/Launcher.java http://jenkins-ci.org/commit/jenkins/1273668ba3b47fd344405ba4c49ec5a83ea9b508 Log: [FIXED JENKINS-20559] - ProcStarter: Check for null before cloning of environment variables list Resolves https://issues.jenkins-ci.org/browse/JENKINS-20559 BTW, I also need to add some tests to "Test Harness" in order to improve coverage of nested operations. These test require a fix for https://issues.jenkins-ci.org/browse/JENKINS-19454 Signed-off-by: Oleg Nenashev <nenashev@synopsys.com> (cherry picked from commit ef943a3ee69529a9f41353f134043ed3363f12e0)

            Code changed in jenkins
            User: Oleg Nenashev
            Path:
            test/src/test/java/hudson/ProcStarterTest.java
            http://jenkins-ci.org/commit/jenkins/0ce7ad2ca208ff24ce49fdbd16157d2abed4328c
            Log:
            JENKINS-20559 - A direct test for the bug

            Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
            (cherry picked from commit c5d01b0645a12e64e2a256641b18989c2f68eeea)

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: test/src/test/java/hudson/ProcStarterTest.java http://jenkins-ci.org/commit/jenkins/0ce7ad2ca208ff24ce49fdbd16157d2abed4328c Log: JENKINS-20559 - A direct test for the bug Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com> (cherry picked from commit c5d01b0645a12e64e2a256641b18989c2f68eeea)

            People

              oleg_nenashev Oleg Nenashev
              oleg_nenashev Oleg Nenashev
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: