Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gvozdev2013-03-10 11:05:35 +0000
committerAndrew Gvozdev2013-03-10 11:48:11 +0000
commite034731fee40a363a2a40f3f843890357e506abb (patch)
treef7f76fb1aa41b3bc71b156d4548a3e7d9cdbadf5
parent180b19205413a0d73baf1a19adf98c816b38d3fb (diff)
downloadorg.eclipse.cdt-e034731fee40a363a2a40f3f843890357e506abb.tar.gz
org.eclipse.cdt-e034731fee40a363a2a40f3f843890357e506abb.tar.xz
org.eclipse.cdt-e034731fee40a363a2a40f3f843890357e506abb.zip
bug 357442: Protect EnvVarCollector against NPE when array of environment variables contains null
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java42
1 files changed, 22 insertions, 20 deletions
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java
index 9538ddbcdff..eeb88c41b0f 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java
@@ -49,26 +49,28 @@ public class EnvVarCollector {
boolean isCaseInsensitive = !EnvironmentVariableManager.getDefault().isVariableCaseSensitive();
for(int i = 0; i < vars.length; i ++) {
IEnvironmentVariable var = vars[i];
- String name = var.getName();
- if(isCaseInsensitive)
- name = name.toUpperCase();
-
- boolean noCheck = false;
-
- if(fMap == null){
- noCheck = true;
- fMap = new HashMap<String, EnvVarDescriptor>();
- }
-
- EnvVarDescriptor des = null;
- if(noCheck || (des = fMap.get(name)) == null){
- des = new EnvVarDescriptor(var,info,num, supplier);
- fMap.put(name,des);
- }
- else {
- des.setContextInfo(info);
- des.setSupplierNum(num);
- des.setVariable(EnvVarOperationProcessor.performOperation(des.getOriginalVariable(),var));
+ if (var != null) {
+ String name = var.getName();
+ if(isCaseInsensitive)
+ name = name.toUpperCase();
+
+ boolean noCheck = false;
+
+ if(fMap == null){
+ noCheck = true;
+ fMap = new HashMap<String, EnvVarDescriptor>();
+ }
+
+ EnvVarDescriptor des = null;
+ if(noCheck || (des = fMap.get(name)) == null){
+ des = new EnvVarDescriptor(var,info,num, supplier);
+ fMap.put(name,des);
+ }
+ else {
+ des.setContextInfo(info);
+ des.setSupplierNum(num);
+ des.setVariable(EnvVarOperationProcessor.performOperation(des.getOriginalVariable(),var));
+ }
}
}
}

Back to the top