From: <np...@us...> - 2007-02-01 17:45:25
|
Revision: 430 http://svn.sourceforge.net/omc/?rev=430&view=rev Author: npaxton Date: 2007-02-01 09:45:21 -0800 (Thu, 01 Feb 2007) Log Message: ----------- fix ipmi crash Modified Paths: -------------- smash/branches/1.0/src/lib/omc-ipmi/IpmiIfcFru.cpp Modified: smash/branches/1.0/src/lib/omc-ipmi/IpmiIfcFru.cpp =================================================================== --- smash/branches/1.0/src/lib/omc-ipmi/IpmiIfcFru.cpp 2007-01-29 23:32:37 UTC (rev 429) +++ smash/branches/1.0/src/lib/omc-ipmi/IpmiIfcFru.cpp 2007-02-01 17:45:21 UTC (rev 430) @@ -286,7 +286,8 @@ IpmiIfcFruInstantiateAll(ipmi_drv *drv) { ipmiifc_sdr_list *sdr; - + int cc = 0; + UInt32 saveAddress = drv->target_addr; UInt8 saveLun = drv->target_lun; UInt8 saveChannel = drv->target_channel; @@ -311,7 +312,6 @@ for (int retries=5;retries;retries-- ) { - int cc; cc=IpmiIfcFruGetInv(drv, sdr->record.fruloc->device_id); if (cc==0xc3) // retry if timeout { @@ -320,16 +320,20 @@ } break; } - IpmiFruOptionalRefArray optRefArray = IpmiIfcFruParseOptional(); + + if(cc == 0) + { + IpmiFruOptionalRefArray optRefArray = IpmiIfcFruParseOptional(); - IpmiFruRef sref; - sref = new IpmiFru((int)sdr->length, - (unsigned char *)sdr->record.full); - sref->setOptionalRefArray(optRefArray); - IpmiFruOptionalRefArray tmpRefArray; - tmpRefArray = sref->getOptionalRefArray(); + IpmiFruRef sref; + sref = new IpmiFru((int)sdr->length, + (unsigned char *)sdr->record.full); + sref->setOptionalRefArray(optRefArray); + IpmiFruOptionalRefArray tmpRefArray; + tmpRefArray = sref->getOptionalRefArray(); - g_fruArray.append(sref); + g_fruArray.append(sref); + } } drv->target_addr = saveAddress; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |