You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/03/25 01:46:50 UTC

incubator-ranger git commit: First round of Coverity uncovered issues.

Repository: incubator-ranger
Updated Branches:
  refs/heads/master 59304ba8d -> cb4eb54b6


First round of Coverity uncovered issues.

Signed-off-by: Madhan Neethiraj <ma...@apache.org>


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

Branch: refs/heads/master
Commit: cb4eb54b68b0bf54497a572cc81a4e17a72363b7
Parents: 59304ba
Author: Abhay Kulkarni <ak...@hortonworks.com>
Authored: Tue Mar 24 14:39:07 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Mar 24 17:12:58 2015 -0700

----------------------------------------------------------------------
 .../hadoop/config/RangerConfiguration.java      | 13 +++++----
 .../ranger/plugin/util/RangerRESTClient.java    | 13 +++++----
 .../hadoop/utils/RangerCredentialProvider.java  | 13 +++++----
 .../ranger/authorization/hbase/Crypt.java       | 13 +++++----
 .../agent/HadoopAuthClassTransformer.java       | 24 ++++++++--------
 .../ranger/services/hive/client/HiveClient.java | 29 ++++++++++++--------
 .../main/java/org/apache/util/sql/Jisql.java    | 10 +++++++
 .../service/filter/RangerRESTAPIFilter.java     |  7 ++---
 .../config/UserGroupSyncConfig.java             | 13 +++++----
 9 files changed, 78 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerConfiguration.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerConfiguration.java b/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerConfiguration.java
index 7c81d09..3610e9f 100644
--- a/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerConfiguration.java
+++ b/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerConfiguration.java
@@ -33,7 +33,7 @@ public class RangerConfiguration extends Configuration {
 	
 	private static final Logger LOG = Logger.getLogger(RangerConfiguration.class) ;
 	
-	private static RangerConfiguration config = null;
+	private static volatile RangerConfiguration config = null;
 	
 	private RangerConfiguration() {
 		super(false) ;
@@ -88,15 +88,16 @@ public class RangerConfiguration extends Configuration {
 	
 
 	public static RangerConfiguration getInstance() {
-		if (config == null) {
+        RangerConfiguration result = config;
+		if (result == null) {
 			synchronized (RangerConfiguration.class) {
-				RangerConfiguration temp = config;
-				if (temp == null) {
-					config = new RangerConfiguration();
+				result = config;
+				if (result == null) {
+					config = result = new RangerConfiguration();
 				}
 			}
 		}
-		return config;
+		return result;
 	}
 
 	public void initAudit(String appType) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java
index f9cc570..1d57935 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java
@@ -100,7 +100,7 @@ public class RangerRESTClient {
 	private String mTrustStoreType  = null;
 
 	private Gson   gsonBuilder = null;
-	private Client client      = null;
+	private volatile Client client      = null;
 
 	public RangerRESTClient() {
 		this(RangerConfiguration.getInstance().get(RANGER_PROP_POLICYMGR_URL),
@@ -150,15 +150,18 @@ public class RangerRESTClient {
 	}
 
 	public Client getClient() {
-		if(client == null) {
+        // result saves on access time when client is built at the time of the call
+        Client result = client;
+		if(result == null) {
 			synchronized(this) {
-				if(client == null) {
-					client = buildClient();
+                result = client;
+				if(result == null) {
+					client = result = buildClient();
 				}
 			}
 		}
 
-		return client;
+		return result;
 	}
 
 	private Client buildClient() {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java
----------------------------------------------------------------------
diff --git a/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java b/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java
index ebfcc45..48d933b 100644
--- a/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java
+++ b/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java
@@ -34,19 +34,20 @@ public class RangerCredentialProvider {
 
   private static Log LOG = LogFactory.getLog(RangerCredentialProvider.class);
 
-  private static RangerCredentialProvider  me = null;
+  private static volatile RangerCredentialProvider  me = null;
 
   
   public static RangerCredentialProvider getInstance()  {
-	  if ( me == null) {
+      RangerCredentialProvider result = me;
+	  if ( result == null) {
 		  synchronized(RangerCredentialProvider.class) {
-			  RangerCredentialProvider temp = me;
-			  if ( temp == null){
-				  me = new RangerCredentialProvider();
+			  result = me;
+			  if ( result == null){
+				  me = result = new RangerCredentialProvider();
 			  }
 		  }
 	  }
-	return me;
+	return result;
   }
   
   public char[] getCredentialString(String url, String alias)  {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/Crypt.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/Crypt.java b/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/Crypt.java
index 272b0a0..1a32533 100644
--- a/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/Crypt.java
+++ b/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/Crypt.java
@@ -36,22 +36,23 @@ public class Crypt {
 	private static final String CIPHER_ALGO = "AES/CBC/PKCS5Padding";
 	private static final String CIPHER_INIT_ALGO = "AES";
 	
-	private static Crypt me = null ;
+	private static volatile Crypt me = null ;
 	
 	private Cipher encrypter = null;
 	private Cipher descrypter = null;
 
 
 	public static Crypt getInstance() {
-		if (me == null) {
+        Crypt result = me;
+		if (result == null) {
 			synchronized (Crypt.class) {
-				Crypt other = me ;
-				if (other == null) {
-					me = new Crypt() ;
+				result = me ;
+				if (result == null) {
+					me = result = new Crypt() ;
 				}
 			}
 		}
-		return me ;
+		return result ;
 	}
 	
 	private Crypt() {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/agent/HadoopAuthClassTransformer.java
----------------------------------------------------------------------
diff --git a/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/agent/HadoopAuthClassTransformer.java b/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/agent/HadoopAuthClassTransformer.java
index 742cf05..2b7a63e 100644
--- a/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/agent/HadoopAuthClassTransformer.java
+++ b/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/agent/HadoopAuthClassTransformer.java
@@ -37,23 +37,23 @@ public class HadoopAuthClassTransformer implements ClassFileTransformer {
 		byte[] ret = aClassFileBuffer;
 
 		if (aClassName.equals("org/apache/hadoop/hdfs/server/namenode/FSPermissionChecker")) {
-			if (transformedClassByteCode == null) {
+            byte[] result = transformedClassByteCode;
+            if (result == null) {
+
 				byte[] injectedClassCode = injectFSPermissionCheckerHooks(aClassLoader, aClassName, aClassBeingRedefined, aProtectionDomain, aClassFileBuffer);
 
 				if(injectedClassCode != null) {
-					if(transformedClassByteCode == null) {
-						synchronized(HadoopAuthClassTransformer.class) {
-							byte[] temp = transformedClassByteCode;
-							if (temp == null) {
-								transformedClassByteCode = injectedClassCode;
-							}
-						}
-					}
-				}
+                    synchronized (HadoopAuthClassTransformer.class) {
+                        result = transformedClassByteCode;
+                        if (result == null) {
+                            transformedClassByteCode = result = injectedClassCode;
+                        }
+                    }
+                }
 			}
 
-			if(transformedClassByteCode != null) {
-				ret = transformedClassByteCode;
+			if(result != null) {
+				ret = result;
 			}
 		}
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveClient.java
----------------------------------------------------------------------
diff --git a/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveClient.java b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveClient.java
index 40efe2e..15ee2fc 100644
--- a/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveClient.java
+++ b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveClient.java
@@ -189,21 +189,29 @@ public class HiveClient extends BaseClient implements Closeable {
 						}
 						finally {
 							close(stat) ;
+                            stat = null;
 						}
 						
 						sql = "show tables " ;
 						if (tableNameMatching != null && ! tableNameMatching.isEmpty()) {
 							sql = sql + " like \"" + tableNameMatching  + "\"" ;
 						}
-						stat =  con.createStatement()  ;
-						rs = stat.executeQuery(sql) ;
-						while (rs.next()) {
-							String tblName = rs.getString(1);
-							if ( tblList != null && tblList.contains(tblName)) {
-								continue;
-							}
-							ret.add(tblName);
-						}
+                        try {
+                            stat = con.createStatement();
+                            rs = stat.executeQuery(sql);
+                            while (rs.next()) {
+                                String tblName = rs.getString(1);
+                                if (tblList != null && tblList.contains(tblName)) {
+                                    continue;
+                                }
+                                ret.add(tblName);
+                            }
+                        } finally {
+                            close(rs);
+                            close(stat);
+                            rs = null;
+                            stat = null;
+                        }
 					 }
 				}
 			} catch (SQLTimeoutException sqlt) {
@@ -227,9 +235,6 @@ public class HiveClient extends BaseClient implements Closeable {
 					LOG.debug("<== HiveClient.getTblList() Error : " + sqle) ;
 				}
 				throw hdpException;
-			} finally {
-				close(rs) ;
-				close(stat) ;
 			}
 			
 		}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/jisql/src/main/java/org/apache/util/sql/Jisql.java
----------------------------------------------------------------------
diff --git a/jisql/src/main/java/org/apache/util/sql/Jisql.java b/jisql/src/main/java/org/apache/util/sql/Jisql.java
index e5dac9b..62da3c1 100644
--- a/jisql/src/main/java/org/apache/util/sql/Jisql.java
+++ b/jisql/src/main/java/org/apache/util/sql/Jisql.java
@@ -507,6 +507,16 @@ public class Jisql {
         			// Ignore IOE when closing streams
         		}
         	}
+            if (statement != null) {
+                try {
+                    if (!statement.isClosed()) {
+                        statement.close();
+                    }
+
+                } catch (SQLException sqle) {
+                    // Ignore
+                }
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/security-admin/src/main/java/org/apache/ranger/service/filter/RangerRESTAPIFilter.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/filter/RangerRESTAPIFilter.java b/security-admin/src/main/java/org/apache/ranger/service/filter/RangerRESTAPIFilter.java
index 6087d35..21536ac 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/filter/RangerRESTAPIFilter.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/filter/RangerRESTAPIFilter.java
@@ -45,26 +45,25 @@ import com.sun.jersey.spi.container.ContainerResponse;
 
 public class RangerRESTAPIFilter extends LoggingFilter {
 	Logger logger = Logger.getLogger(RangerRESTAPIFilter.class);
-	static boolean initDone = false;
+	static volatile boolean initDone = false;
 
 	boolean logStdOut = true;
 	HashMap<String, String> regexPathMap = new HashMap<String, String>();
 	HashMap<String, Pattern> regexPatternMap = new HashMap<String, Pattern>();
 	List<String> regexList = new ArrayList<String>();
 	List<String> loggedRestPathErrors = new ArrayList<String>();
-	private final Object lock = new Object();
 
 	void init() {
 		if (initDone) {
 			return;
 		}
-		synchronized (lock) {
+		synchronized (RangerRESTAPIFilter.class) {
 			if (initDone) {
 				return;
 			}
 
 			logStdOut = PropertiesUtil.getBooleanProperty(
-					"xa.restapi.log.enabled", initDone);
+					"xa.restapi.log.enabled", false);
 
 			// Build hash map
 			try {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/cb4eb54b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
----------------------------------------------------------------------
diff --git a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
index b2c2eb5..204a39c 100644
--- a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
+++ b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
@@ -146,18 +146,19 @@ public class UserGroupSyncConfig  {
 
 	private Properties prop = new Properties() ;
 	
-	private static UserGroupSyncConfig me = null ;
+	private static volatile UserGroupSyncConfig me = null ;
 	
 	public static UserGroupSyncConfig getInstance() {
-		if (me == null) {
+        UserGroupSyncConfig result = me;
+		if (result == null) {
 			synchronized(UserGroupSyncConfig.class) {
-				UserGroupSyncConfig temp = me ;
-				if (temp == null) {
-					me = new UserGroupSyncConfig() ;
+				result = me ;
+				if (result == null) {
+					me = result = new UserGroupSyncConfig() ;
 				}
 			}
 		}
-		return me ;
+		return result ;
 	}