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

BetweenTokensEditor corrupts page if start marker not found

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      I found a second problem in the token matching logic of BetweenTokensEditor.java. The logic for finding the start token is:

      final int start = content.indexOf(startMarkerToken) + startMarkerToken.length();
      if (start < 0)

      { // exception }

      However, as long as the startMarkerToken is defined, the sum of indexOf + length() will be non-negative whether the marker is found or not. If the marker length is 10, then the plugin will replace the page content starting from char 9 if the marker is not found, corrupting the page.

      Obviously, the code should check whether indexOf(startMarkerToken) < 0, instead of checking the sum.

        Attachments

          Activity

          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Joe Hansche
          Path:
          .classpath
          pom.xml
          src/main/java/com/myyearbook/hudson/plugins/confluence/wiki/editors/BetweenTokensEditor.java
          src/test/java/com/myyearbook/hudson/plugins/confluence/wiki/editors/BetweenTokensEditorTest.java
          http://jenkins-ci.org/commit/confluence-publisher-plugin/2aa0a59ff18c82a0fb914e5498651f23aa557502
          Log:
          [Fix JENKINS-14205] Fix logic error checking for start token.

          If the start token is configured, but does not exist in the content,
          the check for the start token's existence would fail, causing the content
          to become corrupt.

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Joe Hansche Path: .classpath pom.xml src/main/java/com/myyearbook/hudson/plugins/confluence/wiki/editors/BetweenTokensEditor.java src/test/java/com/myyearbook/hudson/plugins/confluence/wiki/editors/BetweenTokensEditorTest.java http://jenkins-ci.org/commit/confluence-publisher-plugin/2aa0a59ff18c82a0fb914e5498651f23aa557502 Log: [Fix JENKINS-14205] Fix logic error checking for start token. If the start token is configured, but does not exist in the content, the check for the start token's existence would fail, causing the content to become corrupt.
          Hide
          jhansche Joe Hansche added a comment -

          Thanks for the report and for taking the time to look into it! I've pushed a fix, released as version 1.7. I've also added unit tests so things like this don't regress later.

          Show
          jhansche Joe Hansche added a comment - Thanks for the report and for taking the time to look into it! I've pushed a fix, released as version 1.7. I've also added unit tests so things like this don't regress later.
          Hide
          jhansche Joe Hansche added a comment -

          Scratch that: 1.7 was a botched release and should not show up in the Update Center (release plugin failed to push, and left everything in a weird state). Please confirm that 1.7.1 fixes the bug, once it drops in the Update Center.

          Thanks!

          Show
          jhansche Joe Hansche added a comment - Scratch that: 1.7 was a botched release and should not show up in the Update Center (release plugin failed to push, and left everything in a weird state). Please confirm that 1.7.1 fixes the bug, once it drops in the Update Center. Thanks!

            People

            • Assignee:
              plaa Sampo Niskanen
              Reporter:
              plaa Sampo Niskanen
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: