You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2016/12/21 09:32:30 UTC

[1/3] ant git commit: false positives for null dereferences

Repository: ant
Updated Branches:
  refs/heads/1.9.x 6c8b3542f -> 85ff7bf69


false positives for null dereferences


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/e1f9674a
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/e1f9674a
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/e1f9674a

Branch: refs/heads/1.9.x
Commit: e1f9674ab3f5daec3b500fc2614be1d9a2a9bfe2
Parents: 6c8b354
Author: Stefan Bodewig <bo...@apache.org>
Authored: Wed Dec 21 10:31:23 2016 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Wed Dec 21 10:31:23 2016 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/UnknownElement.java       |  3 ++-
 .../org/apache/tools/ant/taskdefs/MacroInstance.java    | 12 +++++++++---
 src/main/org/apache/tools/zip/ZipFile.java              |  6 +++---
 3 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/e1f9674a/src/main/org/apache/tools/ant/UnknownElement.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/UnknownElement.java b/src/main/org/apache/tools/ant/UnknownElement.java
index 88cd498..15770c2 100644
--- a/src/main/org/apache/tools/ant/UnknownElement.java
+++ b/src/main/org/apache/tools/ant/UnknownElement.java
@@ -646,7 +646,8 @@ public class UnknownElement extends Task {
             return false;
         }
         for (int i = 0; i < childrenSize; ++i) {
-            UnknownElement child = (UnknownElement) children.get(i);
+            // children cannot be null childrenSize would have been 0
+            UnknownElement child = (UnknownElement) children.get(i); //NOSONAR
             if (!child.similar(other.children.get(i))) {
                 return false;
             }

http://git-wip-us.apache.org/repos/asf/ant/blob/e1f9674a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
index 682ca12..9ffa9b2 100644
--- a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
+++ b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
@@ -197,9 +197,12 @@ public class MacroInstance extends Task implements DynamicAttribute, TaskContain
                     }
                     break;
                 case STATE_EXPECT_NAME:
+                    // macroName cannot be null as this state is only
+                    // ever reached from STATE_EXPECT_BRACKET after it
+                    // has been set
                     if (ch == '}') {
                         state = STATE_NORMAL;
-                        String name = macroName.toString().toLowerCase(Locale.ENGLISH);
+                        String name = macroName.toString().toLowerCase(Locale.ENGLISH); //NOSONAR
                         String value = (String) macroMapping.get(name);
                         if (value == null) {
                             ret.append("@{");
@@ -210,7 +213,7 @@ public class MacroInstance extends Task implements DynamicAttribute, TaskContain
                         }
                         macroName = null;
                     } else {
-                        macroName.append(ch);
+                        macroName.append(ch); //NOSONAR
                     }
                     break;
                 default:
@@ -224,8 +227,11 @@ public class MacroInstance extends Task implements DynamicAttribute, TaskContain
                 ret.append('@');
                 break;
             case STATE_EXPECT_NAME:
+                // macroName cannot be null as this state is only
+                // ever reached from STATE_EXPECT_BRACKET after it
+                // has been set
                 ret.append("@{");
-                ret.append(macroName.toString());
+                ret.append(macroName.toString()); //NOSONAR
                 break;
             default:
                 break;

http://git-wip-us.apache.org/repos/asf/ant/blob/e1f9674a/src/main/org/apache/tools/zip/ZipFile.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/zip/ZipFile.java b/src/main/org/apache/tools/zip/ZipFile.java
index 1be53cd..f963ceb 100644
--- a/src/main/org/apache/tools/zip/ZipFile.java
+++ b/src/main/org/apache/tools/zip/ZipFile.java
@@ -1038,12 +1038,12 @@ public class ZipFile implements Closeable {
         @Override
         public boolean equals(final Object other) {
             if (super.equals(other)) {
-                // super.equals would return false if other were not an Entry
+                // super.equals would return false if other were null or not an Entry
                 final Entry otherEntry = (Entry) other;
                 return offsetEntry.headerOffset
-                        == otherEntry.offsetEntry.headerOffset
+                        == otherEntry.offsetEntry.headerOffset //NOSONAR
                     && offsetEntry.dataOffset
-                        == otherEntry.offsetEntry.dataOffset;
+                        == otherEntry.offsetEntry.dataOffset; //NOSONAR
             }
             return false;
         }


[2/3] ant git commit: fix possible null dereferences

Posted by bo...@apache.org.
fix possible null dereferences


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/77c681c5
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/77c681c5
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/77c681c5

Branch: refs/heads/1.9.x
Commit: 77c681c5bee6dc6bd50168356f794f3d5d42f90f
Parents: e1f9674
Author: Stefan Bodewig <bo...@apache.org>
Authored: Wed Dec 21 10:31:44 2016 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Wed Dec 21 10:31:44 2016 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/IntrospectionHelper.java         | 2 ++
 src/main/org/apache/tools/ant/taskdefs/Javadoc.java            | 6 ++++--
 src/main/org/apache/tools/ant/taskdefs/XmlProperty.java        | 6 ++++--
 .../org/apache/tools/ant/taskdefs/optional/depend/Depend.java  | 2 +-
 .../tools/ant/taskdefs/optional/jdepend/JDependTask.java       | 2 +-
 .../tools/ant/taskdefs/optional/sound/AntSoundPlayer.java      | 4 +++-
 src/main/org/apache/tools/tar/TarEntry.java                    | 2 +-
 7 files changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/ant/IntrospectionHelper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/IntrospectionHelper.java b/src/main/org/apache/tools/ant/IntrospectionHelper.java
index 3008656..719f22d 100644
--- a/src/main/org/apache/tools/ant/IntrospectionHelper.java
+++ b/src/main/org/apache/tools/ant/IntrospectionHelper.java
@@ -407,6 +407,7 @@ public final class IntrospectionHelper {
                     + " doesn't support the \"" + attributeName + "\" attribute.";
             throw new UnsupportedAttributeException(msg, attributeName);
         }
+        if (as != null) { // possible if value == null
         try {
             as.setObject(p, element, value);
         } catch (final IllegalAccessException ie) {
@@ -415,6 +416,7 @@ public final class IntrospectionHelper {
         } catch (final InvocationTargetException ite) {
             throw extractBuildException(ite);
         }
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
index f3c16ce..b7fb417 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
@@ -1772,10 +1772,12 @@ public class Javadoc extends Task {
                 useExternalFile, tmpList, srcListWriter);
 
             if (useExternalFile) {
-                srcListWriter.flush();
+                srcListWriter.flush(); //NOSONAR
             }
         } catch (final IOException e) {
-            tmpList.delete();
+            if (tmpList != null) {
+                tmpList.delete();
+            }
             throw new BuildException("Error creating temporary file",
                                      e, getLocation());
         } finally {

http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java
index 2830bdf..ffd89d1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java
+++ b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java
@@ -384,10 +384,12 @@ public class XmlProperty extends org.apache.tools.ant.Task {
                     if (containingPath != null && nodeName.equals(PATH)) {
                         // A "path" attribute for a node within a Path object.
                         containingPath.setPath(attributeValue);
-                    } else if (container instanceof Path && nodeName.equals(REF_ID)) {
+                    } else if (containingPath != null
+                               && container instanceof Path && nodeName.equals(REF_ID)) {
                         // A "refid" attribute for a node within a Path object.
                         containingPath.setPath(attributeValue);
-                    } else if (container instanceof Path && nodeName.equals(LOCATION)) {
+                    } else if (containingPath != null && container instanceof Path
+                               && nodeName.equals(LOCATION)) {
                         // A "location" attribute for a node within a
                         // Path object.
                         containingPath.setLocation(resolveFile(attributeValue));

http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
index cc65129..2cf335c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
@@ -197,7 +197,7 @@ public class Depend extends MatchingTask {
                     dependencyList = new Vector();
                     className = line.substring(prependLength);
                     dependencyMap.put(className, dependencyList);
-                } else {
+                } else if (dependencyList != null) {
                     dependencyList.addElement(line);
                 }
             }

http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
index 9d2e9ae..c608583 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
@@ -553,7 +553,7 @@ public class JDependTask extends Task {
             }
 
             jdepend.analyze();
-            if (pw.checkError()) {
+            if (pw != null && pw.checkError()) {
                 throw new IOException("Encountered an error writing JDepend"
                                       + " output");
             }

http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java b/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java
index f2ad686..aef214f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/sound/AntSoundPlayer.java
@@ -133,7 +133,9 @@ public class AntSoundPlayer implements LineListener, BuildListener {
                 } else {
                     playClip(audioClip, loops);
                 }
-                audioClip.drain();
+                if (audioClip != null) {
+                    audioClip.drain();
+                }
             } finally {
                 if (audioClip != null) {
                     audioClip.close();

http://git-wip-us.apache.org/repos/asf/ant/blob/77c681c5/src/main/org/apache/tools/tar/TarEntry.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/tar/TarEntry.java b/src/main/org/apache/tools/tar/TarEntry.java
index de15a1c..6799079 100644
--- a/src/main/org/apache/tools/tar/TarEntry.java
+++ b/src/main/org/apache/tools/tar/TarEntry.java
@@ -333,7 +333,7 @@ public class TarEntry implements TarConstants {
      * @return True if the entries are equal.
      */
     public boolean equals(TarEntry it) {
-        return getName().equals(it.getName());
+        return it != null && getName().equals(it.getName());
     }
 
     /**


[3/3] ant git commit: whitespace

Posted by bo...@apache.org.
whitespace


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/85ff7bf6
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/85ff7bf6
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/85ff7bf6

Branch: refs/heads/1.9.x
Commit: 85ff7bf6949f62f760e8f487a2ec6fd0152eef78
Parents: 77c681c
Author: Stefan Bodewig <bo...@apache.org>
Authored: Wed Dec 21 10:32:14 2016 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Wed Dec 21 10:32:14 2016 +0100

----------------------------------------------------------------------
 .../org/apache/tools/ant/IntrospectionHelper.java   | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/85ff7bf6/src/main/org/apache/tools/ant/IntrospectionHelper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/IntrospectionHelper.java b/src/main/org/apache/tools/ant/IntrospectionHelper.java
index 719f22d..2b31e43 100644
--- a/src/main/org/apache/tools/ant/IntrospectionHelper.java
+++ b/src/main/org/apache/tools/ant/IntrospectionHelper.java
@@ -408,14 +408,14 @@ public final class IntrospectionHelper {
             throw new UnsupportedAttributeException(msg, attributeName);
         }
         if (as != null) { // possible if value == null
-        try {
-            as.setObject(p, element, value);
-        } catch (final IllegalAccessException ie) {
-            // impossible as getMethods should only return public methods
-            throw new BuildException(ie);
-        } catch (final InvocationTargetException ite) {
-            throw extractBuildException(ite);
-        }
+            try {
+                as.setObject(p, element, value);
+            } catch (final IllegalAccessException ie) {
+                // impossible as getMethods should only return public methods
+                throw new BuildException(ie);
+            } catch (final InvocationTargetException ite) {
+                throw extractBuildException(ite);
+            }
         }
     }