CodeShield-Security / SPDS

Efficient and Precise Pointer-Tracking Data-Flow Framework
Eclipse Public License 2.0
66 stars 12 forks source link

handleMaps is ignored #31

Open martinschaef opened 3 years ago

martinschaef commented 3 years ago

The handleMapsBackward and handleMapsForward methods ignore the handleMaps option. It doesn't look like this option is used anywhere in the code.

martinschaef commented 3 years ago

This would do the trick:

diff --git a/boomerangPDS/src/main/java/boomerang/WeightedBoomerang.java b/boomerangPDS/src/main/java/boomerang/WeightedBoomerang.java
index 13088abc..cb7b7833 100644
--- a/boomerangPDS/src/main/java/boomerang/WeightedBoomerang.java
+++ b/boomerangPDS/src/main/java/boomerang/WeightedBoomerang.java
@@ -178,7 +178,9 @@ public abstract class WeightedBoomerang<W extends Weight> {
                 }
                 addVisitedMethod(node.stmt().getStart().getMethod());

-                handleMapsBackward(node);
+                if (options.handleMaps()) {
+                  handleMapsBackward(node);
+                }

                 if (options.trackStaticFieldAtEntryPointToClinit()) {
                   handleStaticInitializer(node, backwardSolver);
@@ -528,7 +530,9 @@ public abstract class WeightedBoomerang<W extends Weight> {
           }

           addVisitedMethod(node.stmt().getStart().getMethod());
-          handleMapsForward(solver, node);
+          if (options.handleMaps()) {
+            handleMapsForward(solver, node);
+          }
         });

     return solver;
johspaeth commented 3 years ago

Thanks for the suggested fix. I'll include the diff with my next changes.