Ritu,

Coverity identified a number of issues with the brocade plugin. Could you have 
a look at them and post the fixes on the review board? 


If you need additional details on the findings you can request coverity access 
here : https://scan.coverity.com/projects/943

Cheers,

Hugo


Begin forwarded message:

> From: scan-ad...@coverity.com
> Subject: New Defects reported by Coverity Scan for cloudstack
> Date: 29 juli 2014 15:22:48 CEST
> 
> 
> Hi,
> 
> 
> Please find the latest report on new defect(s) introduced to cloudstack found 
> with Coverity Scan.
> 
> Defect(s) Reported-by: Coverity Scan
> Showing 7 of 7 defect(s)
> 
> 
> ** CID 1229114:  Resource leak  (RESOURCE_LEAK)
> /plugins/network-elements/brocade-vcs/src/com/cloud/network/brocade/BrocadeVcsApi.java:
>  509 in 
> com.cloud.network.brocade.BrocadeVcsApi.responseToErrorMessage(org.apache.http.HttpResponse)()
> /plugins/network-elements/brocade-vcs/src/com/cloud/network/brocade/BrocadeVcsApi.java:
>  513 in 
> com.cloud.network.brocade.BrocadeVcsApi.responseToErrorMessage(org.apache.http.HttpResponse)()
> 
> ** CID 1229113:  Resource leak  (RESOURCE_LEAK)
> /plugins/network-elements/brocade-vcs/src/com/cloud/network/brocade/BrocadeVcsApi.java:
>  457 in 
> com.cloud.network.brocade.BrocadeVcsApi.executeRetreiveStatus(java.lang.String)()
> 
> ** CID 1229115:  Dereference before null check  (REVERSE_INULL)
> /plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java:
>  6299 in 
> com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.execute(com.cloud.agent.api.CreateVMSnapshotCommand)()
> 
> ** CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  67 in ()
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  71 in ()
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  55 in ()
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  59 in ()
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  63 in ()
> 
> ** CID 1229120:  WMI: Inefficient Map Iterator  (FB.WMI_WRONG_MAP_ITERATOR)
> /engine/schema/src/com/cloud/capacity/dao/CapacityDaoImpl.java: 478 in 
> com.cloud.capacity.dao.CapacityDaoImpl.findCapacityBy(java.lang.Integer, 
> java.lang.Long, java.lang.Long, java.lang.Long)()
> 
> ** CID 1229119:  DLS: Dead local store  (FB.DLS_DEAD_LOCAL_STORE)
> /plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java:
>  4438 in 
> com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.initialize()()
> 
> ** CID 1229116:  REC: RuntimeException capture  (FB.REC_CATCH_EXCEPTION)
> /engine/schema/src/com/cloud/storage/dao/VMTemplatePoolDaoImpl.java: 189 in 
> com.cloud.storage.dao.VMTemplatePoolDaoImpl.listByTemplateStatus(long, long, 
> long, com.cloud.storage.VMTemplateStorageResourceAssoc$Status)()
> 
> 
> ________________________________________________________________________________________________________
> *** CID 1229114:  Resource leak  (RESOURCE_LEAK)
> /plugins/network-elements/brocade-vcs/src/com/cloud/network/brocade/BrocadeVcsApi.java:
>  509 in 
> com.cloud.network.brocade.BrocadeVcsApi.responseToErrorMessage(org.apache.http.HttpResponse)()
> 503                 try {
> 504     
> 505                     BufferedReader rd = new BufferedReader(new 
> InputStreamReader(response.getEntity().getContent(), 
> Charset.forName("UTF-8")));
> 506     
> 507                     StringBuffer result = new StringBuffer();
> 508                     String line = "";
>>>>    CID 1229114:  Resource leak  (RESOURCE_LEAK)
>>>>    Variable "rd" going out of scope leaks the resource it refers to.
> 509                     while ((line = rd.readLine()) != null) {
> 510                         result.append(line);
> 511                     }
> 512     
> 513                     return result.toString();
> 514                 } catch (IOException e) {
> /plugins/network-elements/brocade-vcs/src/com/cloud/network/brocade/BrocadeVcsApi.java:
>  513 in 
> com.cloud.network.brocade.BrocadeVcsApi.responseToErrorMessage(org.apache.http.HttpResponse)()
> 507                     StringBuffer result = new StringBuffer();
> 508                     String line = "";
> 509                     while ((line = rd.readLine()) != null) {
> 510                         result.append(line);
> 511                     }
> 512     
>>>>    CID 1229114:  Resource leak  (RESOURCE_LEAK)
>>>>    Variable "rd" going out of scope leaks the resource it refers to.
> 513                     return result.toString();
> 514                 } catch (IOException e) {
> 515                     s_logger.debug("Error while loading response body", 
> e);
> 516                 }
> 517             }
> 518             return null;
> 519         }
> 520     
> 
> ________________________________________________________________________________________________________
> *** CID 1229113:  Resource leak  (RESOURCE_LEAK)
> /plugins/network-elements/brocade-vcs/src/com/cloud/network/brocade/BrocadeVcsApi.java:
>  457 in 
> com.cloud.network.brocade.BrocadeVcsApi.executeRetreiveStatus(java.lang.String)()
> 451                 s_logger.error("Failed to get object : " + 
> e.getMessage());
> 452                 throw new BrocadeVcsApiException("Failed to get object : 
> " + e.getMessage());
> 453             }
> 454     
> 455             pm.releaseConnection();
> 456     
>>>>    CID 1229113:  Resource leak  (RESOURCE_LEAK)
>>>>    Variable "br" going out of scope leaks the resource it refers to.
> 457             return convertToXML(sb.toString());
> 458         }
> 459     
> 460         protected void executeDeleteObject(String uri) throws 
> BrocadeVcsApiException {
> 461             if (_host == null || _host.isEmpty() || _adminuser == null || 
> _adminuser.isEmpty() || _adminpass == null || _adminpass.isEmpty()) {
> 462                 throw new BrocadeVcsApiException("Hostname/credentials 
> are null or empty");
> 
> ________________________________________________________________________________________________________
> *** CID 1229115:  Dereference before null check  (REVERSE_INULL)
> /plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java:
>  6299 in 
> com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.execute(com.cloud.agent.api.CreateVMSnapshotCommand)()
> 6293                     } catch (Exception e) {
> 6294                         if (!snapshotMemory) {
> 6295                             vm = createWorkingVM(conn, vmName, 
> guestOSType, platformEmulator, listVolumeTo);
> 6296                         }
> 6297                     }
> 6298     
>>>>    CID 1229115:  Dereference before null check  (REVERSE_INULL)
>>>>    Null-checking "vm" suggests that it may be null, but it has already 
>>>> been dereferenced on all paths leading to the check.
> 6299                     if (vm == null) {
> 6300                         return new CreateVMSnapshotAnswer(cmd, false, 
> "Creating VM Snapshot Failed due to can not find vm: " + vmName);
> 6301                     }
> 6302     
> 6303                     // call Xenserver API
> 6304                     if (!snapshotMemory) {
> 
> ________________________________________________________________________________________________________
> *** CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  67 in ()
> 61     
> 62         public void setProviderName(final String providerName) {
> 63             this.providerName = providerName;
> 64         }
> 65     
> 66         public void setDeviceName(final String deviceName) {
>>>>    CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
>>>>    Unread field: com.cloud.api.response.BrocadeVcsDeviceResponse.deviceName
> 67             this.deviceName = deviceName;
> 68         }
> 69     
> 70         public void setHostName(final String hostName) {
> 71             this.hostName = hostName;
> 72         }
> 73     
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  71 in ()
> 65     
> 66         public void setDeviceName(final String deviceName) {
> 67             this.deviceName = deviceName;
> 68         }
> 69     
> 70         public void setHostName(final String hostName) {
>>>>    CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
>>>>    Unread field: com.cloud.api.response.BrocadeVcsDeviceResponse.hostName
> 71             this.hostName = hostName;
> 72         }
> 73     
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  55 in ()
> 49     
> 50         @SerializedName(ApiConstants.HOST_NAME)
> 51         @Param(description = "the principal switch Ip address")
> 52         private String hostName;
> 53     
> 54         public void setId(String vcsDeviceId) {
>>>>    CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
>>>>    Unread field: com.cloud.api.response.BrocadeVcsDeviceResponse.id
> 55             this.id = vcsDeviceId;
> 56         }
> 57     
> 58         public void setPhysicalNetworkId(final String physicalNetworkId) {
> 59             this.physicalNetworkId = physicalNetworkId;
> 60         }
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  59 in ()
> 53     
> 54         public void setId(String vcsDeviceId) {
> 55             this.id = vcsDeviceId;
> 56         }
> 57     
> 58         public void setPhysicalNetworkId(final String physicalNetworkId) {
>>>>    CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
>>>>    Unread field: 
>>>> com.cloud.api.response.BrocadeVcsDeviceResponse.physicalNetworkId
> 59             this.physicalNetworkId = physicalNetworkId;
> 60         }
> 61     
> 62         public void setProviderName(final String providerName) {
> 63             this.providerName = providerName;
> 64         }
> /plugins/network-elements/brocade-vcs/src/com/cloud/api/response/BrocadeVcsDeviceResponse.java:
>  63 in ()
> 57     
> 58         public void setPhysicalNetworkId(final String physicalNetworkId) {
> 59             this.physicalNetworkId = physicalNetworkId;
> 60         }
> 61     
> 62         public void setProviderName(final String providerName) {
>>>>    CID 1229121:  UrF: Unread field  (FB.URF_UNREAD_FIELD)
>>>>    Unread field: 
>>>> com.cloud.api.response.BrocadeVcsDeviceResponse.providerName
> 63             this.providerName = providerName;
> 64         }
> 65     
> 66         public void setDeviceName(final String deviceName) {
> 67             this.deviceName = deviceName;
> 68         }
> 
> ________________________________________________________________________________________________________
> *** CID 1229120:  WMI: Inefficient Map Iterator  (FB.WMI_WRONG_MAP_ITERATOR)
> /engine/schema/src/com/cloud/capacity/dao/CapacityDaoImpl.java: 478 in 
> com.cloud.capacity.dao.CapacityDaoImpl.findCapacityBy(java.lang.Integer, 
> java.lang.Long, java.lang.Long, java.lang.Long)()
> 472                     tempCapacity = capacityMap.get(key);
> 473                     tempCapacity.setPodId(podId);
> 474                     tempCapacity.setClusterId(clusterId);
> 475                 }
> 476                 List<SummedCapacity> summedCapacityList = new 
> ArrayList<SummedCapacity>();
> 477                 for (String key : capacityMap.keySet()) {
>>>>    CID 1229120:  WMI: Inefficient Map Iterator  (FB.WMI_WRONG_MAP_ITERATOR)
>>>>    com.cloud.capacity.dao.CapacityDaoImpl.findCapacityBy(Integer, Long, 
>>>> Long, Long) makes inefficient use of keySet iterator instead of entrySet 
>>>> iterator
> 478                     summedCapacityList.add(capacityMap.get(key));
> 479                 }
> 480                 return summedCapacityList;
> 481             } catch (SQLException e) {
> 482                 throw new CloudRuntimeException("DB Exception on: " + 
> sql, e);
> 483             } catch (Throwable e) {
> 
> ________________________________________________________________________________________________________
> *** CID 1229119:  DLS: Dead local store  (FB.DLS_DEAD_LOCAL_STORE)
> /plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java:
>  4438 in 
> com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.initialize()()
> 4432     
> 4433             Pool pool;
> 4434             try {
> 4435                 pool = Pool.getByUuid(conn, _host.pool);
> 4436                 Pool.Record poolr = pool.getRecord(conn);
> 4437     
>>>>    CID 1229119:  DLS: Dead local store  (FB.DLS_DEAD_LOCAL_STORE)
>>>>    Dead store to hostr
> 4438                 Host.Record hostr = poolr.master.getRecord(conn);
> 4439             } catch (Throwable e) {
> 4440                 s_logger.warn("Check for master failed, failing the FULL 
> Cluster sync command");
> 4441             }
> 4442     
> 4443             StartupStorageCommand sscmd = initializeLocalSR(conn);
> 
> ________________________________________________________________________________________________________
> *** CID 1229116:  REC: RuntimeException capture  (FB.REC_CATCH_EXCEPTION)
> /engine/schema/src/com/cloud/storage/dao/VMTemplatePoolDaoImpl.java: 189 in 
> com.cloud.storage.dao.VMTemplatePoolDaoImpl.listByTemplateStatus(long, long, 
> long, com.cloud.storage.VMTemplateStorageResourceAssoc$Status)()
> 183                         long id = rs.getLong(1); // ID column
> 184                         result.add(findById(id));
> 185                     }
> 186                 }catch (Exception e) {
> 187                     s_logger.warn("Exception: ", e);
> 188                 }
>>>>    CID 1229116:  REC: RuntimeException capture  (FB.REC_CATCH_EXCEPTION)
>>>>    Catching RuntimeExceptions, perhaps unintentionally, with a catch block 
>>>> for Exception
> 189             } catch (Exception e) {
> 190                 s_logger.warn("Exception: ", e);
> 191             }
> 192             return result;
> 193     
> 194         }
> 
> 
> ________________________________________________________________________________________________________
> To view the defects in Coverity Scan visit, 
> http://scan.coverity.com/projects/943?tab=overview
> 
> To unsubscribe from the email notification for new defects, 
> http://scan5.coverity.com/cgi-bin/unsubscribe.py
> 
> 
> 

Reply via email to