[JIRA] (JENKINS-60399) An extra backslash is added from injected environment variable

11 views
Skip to first unread message

roki0103b@gmail.com (JIRA)

unread,
Dec 9, 2019, 2:36:02 AM12/9/19
to jenkinsc...@googlegroups.com
Hiroki Hiyane created an issue
 
Jenkins / Bug JENKINS-60399
An extra backslash is added from injected environment variable
Issue Type: Bug Bug
Assignee: Unassigned
Components: envinject-plugin
Created: 2019-12-09 07:35
Environment: envinject-2.3.0
Priority: Minor Minor
Reporter: Hiroki Hiyane

**Sample code and veriables.

Properties Content:

TEMPDRIVE=C:
TEMPDIR=\\Windows
Temp

 

Pipeline Script:

node {

int rc = bat returnStatus: true, script: """

set TEMPDRIVE=${env.TEMPDRIVE}
set TEMPDIR=${env.TEMPDIR}

%TEMPDRIVE% & cd %TEMPDIR%

echo %CD%

"""
}

 

Results:

[Pipeline] {
[Pipeline] bat

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=*{color}*\Windows\Temp

C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \\Windows\Temp
'\\Windows\Temp'
CMD does not support UNC paths as current directories.

C:\Program Files (x86)\Jenkins\workspace\testpath>echo C:\Program Files (x86)\Jenkins\workspace\testpath
C:\Program Files (x86)\Jenkins\workspace\testpath
[Pipeline] }

 

Expected Result:

[Pipeline]

{ [Pipeline] bat C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C: C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=\Windows\Temp C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \Windows\Temp '\Windows\Temp' C:\Program Files (x86)\Jenkins\workspace\testpath>echo C:\Windows\Temp [Pipeline] }

 

It seems it is due to the following update.

https://github.com/jenkinsci/envinject-plugin/commit/6a272b70a1364af2d0894c1472f26ad5d5a02718#diff-5e1fb35da7722bd6b60a0613ba442ad6

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

roki0103b@gmail.com (JIRA)

unread,
Dec 9, 2019, 2:38:03 AM12/9/19
to jenkinsc...@googlegroups.com
Hiroki Hiyane updated an issue
Change By: Hiroki Hiyane
**Sample code and veriables.

*Properties Content:*

TEMPDRIVE=C:
TEMPDIR=\\Windows
\\
Temp

 

*Pipeline Script:*


node {

int rc = bat returnStatus: true, script: """

set TEMPDRIVE=${env.TEMPDRIVE}
set TEMPDIR=${env.TEMPDIR}

%TEMPDRIVE% & cd %TEMPDIR%

echo %CD%

"""
}

 

*Results:*


[Pipeline] {
[Pipeline] bat

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=*{color:# FF0000 ff0000 } \ {color}*\Windows\Temp


C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \\Windows\Temp
'\\Windows\Temp'
{color:#FF0000} *CMD does not support UNC paths as current directories.*{color}


C:\Program Files (x86)\Jenkins\workspace\testpath>echo C:\Program Files (x86)\Jenkins\workspace\testpath
C:\Program Files (x86)\Jenkins\workspace\testpath
[Pipeline] }

 

*Expected Result:*

[Pipeline]


{

[Pipeline] bat

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=\Windows\Temp

C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \Windows\Temp

'\Windows\Temp'


C:\ Program Files (x86) Windows \ Jenkins\workspace\testpath Temp >echo C:\Windows\Temp

[Pipeline]

}

 

*It seems it is due to the following update.*

*[https://github.com/jenkinsci/envinject-plugin/commit/6a272b70a1364af2d0894c1472f26ad5d5a02718#diff-5e1fb35da7722bd6b60a0613ba442ad6]*

 

roki0103b@gmail.com (JIRA)

unread,
Dec 9, 2019, 2:44:02 AM12/9/19
to jenkinsc...@googlegroups.com
Hiroki Hiyane updated an issue
**Sample code and veriables.

*Properties Content:*

 
{code:java}
TEMPDRIVE=C:
TEMPDIR=\\Windows
\\TEMP
Temp {code}
 

 

*Pipeline Script:*

 
{code:java}
node {

int rc = bat returnStatus: true, script: """

set TEMPDRIVE=${env.TEMPDRIVE}
set TEMPDIR=${env.TEMPDIR}

%TEMPDRIVE% & cd %TEMPDIR%

echo %CD%

"""
}
{code}
 

 

*Results:*
{code:java}
[Pipeline] {
[Pipeline] bat

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR= *{color:#ff0000}{color}* \ \ Windows\Temp

C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \\Windows\Temp
'\\Windows\Temp'
* CMD does not support UNC paths as current directories. *{color}

C:\Program Files (x86)\Jenkins\workspace\testpath>echo C:\Program Files (x86)\Jenkins\workspace\testpath
C:\Program Files (x86)\Jenkins\workspace\testpath
[Pipeline] }
{code}
 

*Expected Result:*

 
{code:java}
[Pipeline]

{


[Pipeline] bat


C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:

C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=\Windows\Temp


C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \Windows\Temp


C:\Windows\Temp>echo C:\Windows\Temp
C:\Windows\Temp


[Pipeline]
}

 
{code }
**

roki0103b@gmail.com (JIRA)

unread,
Dec 9, 2019, 4:48:06 AM12/9/19
to jenkinsc...@googlegroups.com
Hiroki Hiyane updated an issue
**Sample code and veriables.

*Properties Content:*

 
{code:java}
TEMPDRIVE=C:
TEMPDIR=\\Windows\\TEMP
{code}
 

 

*Pipeline Script:*

 
{code:java}
node {
int rc = bat returnStatus: true, script: """
  set TEMPDRIVE=${env.TEMPDRIVE}
  set TEMPDIR=${env.TEMPDIR}
  %TEMPDRIVE% & cd %TEMPDIR%
  echo %CD%
"""
}
{code}
 

 

*Results:*
{code:java}
[Pipeline] {
[Pipeline] bat
C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:
C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=\\Windows\Temp
C:\Program Files (x86)\Jenkins\workspace\testpath>C:   & cd \\Windows\Temp
'\\Windows\Temp'
CMD does not support UNC paths as current directories.
C:\Program Files (x86)\Jenkins\workspace\testpath>echo C:\Program Files (x86)\Jenkins\workspace\testpath
C:\Program Files (x86)\Jenkins\workspace\testpath
[Pipeline] }
{code}
 

*Expected Result:*

 
{code:java}
[Pipeline]
{
[Pipeline] bat
C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDRIVE=C:
C:\Program Files (x86)\Jenkins\workspace\testpath>set TEMPDIR=\Windows\Temp
C:\Program Files (x86)\Jenkins\workspace\testpath>C: & cd \Windows\Temp
C:\Windows\Temp>echo C:\Windows\Temp
C:\Windows\Temp
[Pipeline]
}
 
{code}
**

 

 

*It seems it is due to the following update.*

*   [https://github.com/jenkinsci/envinject-plugin/commit/ 6a272b70a1364af2d0894c1472f26ad5d5a02718 2c44f59208ff4414e2de34e39cc0eb50b55794d1 #diff-5e1fb35da7722bd6b60a0613ba442ad6] *

 

roki0103b@gmail.com (JIRA)

unread,
Dec 9, 2019, 4:54:02 AM12/9/19
to jenkinsc...@googlegroups.com

orlo@pnp-hcl.com (JIRA)

unread,
Feb 26, 2020, 9:19:02 AM2/26/20
to jenkinsc...@googlegroups.com
Tim Orlowski commented on Bug JENKINS-60399
 
Re: An extra backslash is added from injected environment variable

I found this broke with 2.3.0 version of the plugin with the change for one of the two commits mentioned above. probably the "Escape paths for network shares (#146) @res0nance"
 
 Need to add a testcase for the use case where we want to have the value to be a directory without the drive.  If this testcase was there then this regression wouldn't have gone out.
 

String content = "KEY1=\\Windows\\Temp";
assertEquals("\\Windows\\Temp", gatherVars.get("KEY1"));

 

 

the current code will currently evaluate it as  \\Windows\Temp

Reply all
Reply to author
Forward
0 new messages