Examples of errors detected by the V612 diagnostic
V612. Unconditional 'break/continue/return/goto' within a loop.
PCSX2
V612 An unconditional 'break' within a loop. pcsx2 cdvdiso.cpp 218
int DvdRead(u32 lsn, u32 sectors, void *buf,
CdRMode *mode)
{
u32 i;
u8* buff;
for (i=lsn; i<(lsn+sectors); i++)
{
if (CDVDreadTrack(i, CDVD_MODE_2048)==-1)
return 0;
buff = CDVDgetBuffer();
if (buff==NULL) return 0;
// switch (mode->datapattern){
// case CdSecS2064:
((u32*)buf)[0] = i + 0x30000;
memcpy_fast((u8*)buf+12, buff, 2048);
buf = (char*)buf + 2064; break; // <=
// default:
// return 0;
// }
}
return 1;
}
Trans-Proteomic Pipeline
V612 An unconditional 'return' within a loop. tpplib residuemass.cxx 1442
const char* ResidueMass::getStdModResidues(....) {
....
for (rmap::const_iterator i = p.first; i != p.second; ++i) {
const cResidue &r = (*i).second;
if (r.m_masses[0].m_nterm) {
n_term_aa_mod = true;
} else if (r.m_masses[0].m_cterm) {
c_term_aa_mod = true;
}
return r.m_residue.c_str(); // <=
}
....
}
LLVM/Clang
V612 An unconditional 'break' within a loop. objcarc.cpp 2763
bool
ObjCARCOpt::VisitBottomUp(....) {
....
for (BBState::edge_iterator SI(MyStates.succ_begin()),
SE(MyStates.succ_end()); SI != SE; ++SI)
{
const BasicBlock *Succ = *SI;
DenseMap<const BasicBlock *, BBState>::iterator I =
BBStates.find(Succ);
assert(I != BBStates.end());
MyStates.InitFromSucc(I->second);
++SI;
for (; SI != SE; ++SI) {
Succ = *SI;
I = BBStates.find(Succ);
assert(I != BBStates.end());
MyStates.MergeSucc(I->second);
}
break; // <=
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. objcarc.cpp 2948
- V612 An unconditional 'break' within a loop. undefinedassignmentchecker.cpp 75
- V612 An unconditional 'break' within a loop. bugreporter.cpp 1095
D programming language
V612 An unconditional 'return' within a loop. cgxmm.c 825
code *cdvector(elem *e, regm_t *pretregs)
{
....
code *c = CNIL;
for (int i = 0; i < n; i++)
{
c = cat(c, codelem(params[i], pretregs, FALSE));
*pretregs = 0; // in case they got set
return c;
}
....
}
OpenCV
V612 An unconditional 'break' within a loop. blobtrackingmsfg.cpp 600
virtual CvBlob* Process(....)
{
....
while(!m_Collision && m_FGWeight>0)
{
....
break;
}
....
}
ReactOS
V612 An unconditional 'break' within a loop. pin.c 1839
VOID NTAPI IKsPin_PinCentricWorker(IN PVOID Parameter)
{
....
do
{
DPRINT("IKsPin_PinCentricWorker calling "
"Pin Process Routine\n");
Status =
This->Pin.Descriptor->Dispatch->Process(&This->Pin);
DPRINT("IKsPin_PinCentricWorker Status %lx, "
"Offset %lu Length %lu\n", Status,
This->LeadingEdgeStreamPointer.Offset,
This->LeadingEdgeStreamPointer.Length);
break;
} while(This->IrpCount);
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. regexp.c 3633
- V612 An unconditional 'break' within a loop. hlpfile.c 1131
Windows 8 Driver Samples
V612 An unconditional 'break' within a loop. ap_assocmgr.c 1817
NDIS_STATUS
AmSetApBeaconMode(....)
{
....
while (BeaconEnabled != AssocMgr->BeaconEnabled)
{
ndisStatus = ....;
if (NDIS_STATUS_SUCCESS != ndisStatus)
{
break;
}
AssocMgr->BeaconEnabled = BeaconEnabled;
break;
}
....
}
NetXMS
V612 An unconditional 'break' within a loop. tools.cpp 280
static bool MatchStringEngine(....)
{
....
// Handle "*?" case
while(*MPtr == _T('?'))
{
if (*SPtr != 0)
SPtr++;
else
return false;
MPtr++;
break;
}
....
}
Chromium
V612 An unconditional 'return' within a loop. picture_layer_impl.cc 638
ResourceProvider::ResourceId
PictureLayerImpl::ContentsResourceId() const
{
....
for (PictureLayerTilingSet::CoverageIterator iter(....);
iter;
++iter)
{
if (!*iter)
return 0;
const ManagedTileState::TileVersion& tile_version = ....;
if (....)
return 0;
if (iter.geometry_rect() != content_rect)
return 0;
return tile_version.get_resource_id();
}
return 0;
}
Chromium
V612 An unconditional 'break' within a loop. action_info.cc 76
scoped_ptr<ActionInfo> ActionInfo::Load(....)
{
....
for (base::ListValue::const_iterator iter = icons->begin();
iter != icons->end(); ++iter)
{
std::string path;
if (....);
return scoped_ptr<ActionInfo>();
}
result->default_icon.Add(....);
break;
}
....
}
Chromium
V612 An unconditional 'return' within a loop. bluetooth_device_win.cc 224
const BluetoothServiceRecord*
BluetoothDeviceWin::GetServiceRecord(
const std::string& uuid) const
{
for (ServiceRecordList::const_iterator iter =
service_record_list_.begin();
iter != service_record_list_.end();
++iter) {
return *iter;
}
return NULL;
}
Trans-Proteomic Pipeline
V612 An unconditional 'return' within a loop. residuemass.cxx 1442
const char* ResidueMass::getStdModResidues(....) {
....
for (rmap::const_iterator i = p.first; i != p.second; ++i) {
const cResidue &r = (*i).second;
if (r.m_masses[0].m_nterm) {
n_term_aa_mod = true;
} else if (r.m_masses[0].m_cterm) {
c_term_aa_mod = true;
}
return r.m_residue.c_str();
}
if(! strcmp(mod, "+N-formyl-met (Protein)")) {
return "n";
} if (! strcmp(mod, "13C6-15N2 (K)")) {
return "K";
} if (! strcmp(mod, "13C6-15N4 (R)")) {
return "R";
....
}
Prime95
V612 An unconditional 'break' within a loop. prime95 comm95b.c 133
void registerThreadTermination (void)
{
....
for (i = 0; i < NUM_THREAD_HANDLES; i++) {
if (THREAD_HANDLES[i] != h) break;
THREAD_HANDLES[i] = THREAD_HANDLES[--NUM_THREAD_HANDLES];
break;
}
}
Geant4 software
V612 An unconditional 'break' within a loop. g4qmdgroundstatenucleus.cc 274
void G4QMDGroundStateNucleus::packNucleons()
{
....
while ( nmTry < maxTrial )
{
nmTry++;
G4int i = 0;
for ( i = 1 ; i < GetMassNumber() ; i++ )
{
....
}
if ( i == GetMassNumber() )
{
areTheseMsOK = true;
}
break;
}
....
}
gperftools
V612 An unconditional 'return' within a loop. symbolize.cc 154
int SymbolTable::Symbolize() {
....
if (socketpair(AF_UNIX, SOCK_STREAM, 0, child_fds[i]) == -1) {
for (int j = 0; j < i; j++) {
close(child_fds[j][0]);
close(child_fds[j][1]);
PrintError("Cannot create a socket pair");
return 0;
}
}
....
}
Chromium
V612 An unconditional 'return' within a loop. objects.cc 10326
Code* Code::FindFirstCode() {
ASSERT(is_inline_cache_stub());
DisallowHeapAllocation no_allocation;
int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET);
for (RelocIterator it(this, mask); !it.done(); it.next())
{
RelocInfo* info = it.rinfo();
return
Code::GetCodeFromTargetAddress(info->target_address());
}
return NULL;
}
Firebird
V612 An unconditional 'break' within a loop. lock.cpp 965
SLONG LockManager::queryData(....)
{
....
for (const srq* lock_srq =
(SRQ) SRQ_ABS_PTR(data_header.srq_backward);
lock_srq != &data_header;
lock_srq = (SRQ) SRQ_ABS_PTR(lock_srq->srq_backward))
{
const lbl* const lock = ....;
CHECK(lock->lbl_series == series);
data = lock->lbl_data;
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. pag.cpp 217
CryEngine 3 SDK
V612 An unconditional 'break' within a loop. weapon.cpp 2854
void CWeapon::AccessoriesChanged(bool initialLoadoutSetup)
{
....
for (int i = 0; i < numZoommodes; i++)
{
CIronSight* pZoomMode = ....
const SZoomModeParams* pCurrentParams = ....
const SZoomModeParams* pNewParams = ....
if(pNewParams != pCurrentParams)
{
pZoomMode->ResetSharedParams(pNewParams);
}
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. gunturret.cpp 1647
- V612 An unconditional 'break' within a loop. vehiclemovementbase.cpp 2362
- V612 An unconditional 'break' within a loop. vehiclemovementbase.cpp 2382
V8 JavaScript Engine
V612 An unconditional 'return' within a loop. objects.cc 7301
Map* Next() {
....
while (index < number_of_transitions) {
*TransitionArrayHeader() = Smi::FromInt(index + 1);
return transition_array_->GetTarget(index);
}
....
}
Data Distribution Service
V612 An unconditional 'return' within a loop. socket.cpp 187
void Socket_Impl::
send_ (void const* buf, size_t s)
{
....
while (queue_.is_empty ())
{
if (timeout)
{
if (cond_.wait (&abs_time) != -1)
break;
}
else
{
if (cond_.wait () != -1)
break;
}
return -1; // errno is already set
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'return' within a loop. socket.cpp 254
Scilab
V612 An unconditional 'break' within a loop. msgs.c 1293
static int msg_101(int *n, int *ierr)
{
....
for (i=0;i<(int)strlen(line);i++)
{
if (line[i]==' ') line[i]='\0';
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. msgs.c 1313
- V612 An unconditional 'break' within a loop. api_common.cpp 1407
Qt
V612 An unconditional 'break' within a loop. qhelpgenerator.cpp 429
bool QHelpGenerator::registerVirtualFolder(....)
{
....
while (d->query->next()) {
d->namespaceId = d->query->value(0).toInt();
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. qhelpgenerator.cpp 642
Bitcoin
V612 An unconditional 'return' within a loop. crypter.cpp 169
bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn)
{
{
LOCK(cs_KeyStore);
if (!SetCrypted())
return false;
CryptedKeyMap::const_iterator mi = mapCryptedKeys.begin();
for (; mi != mapCryptedKeys.end(); ++mi)
{
const CPubKey &vchPubKey = (*mi).second.first;
const std::vector<unsigned char> &vchCryptedSecret =
(*mi).second.second;
CKeyingMaterial vchSecret;
if(!DecryptSecret(vMasterKeyIn, vchCryptedSecret,
vchPubKey.GetHash(), vchSecret))
return false;
if (vchSecret.size() != 32)
return false;
CKey key;
key.Set(vchSecret.begin(), vchSecret.end(),
vchPubKey.IsCompressed());
if (key.GetPubKey() == vchPubKey)
break;
return false;
}
vMasterKey = vMasterKeyIn;
}
NotifyStatusChanged(this);
return true;
}
K Desktop Environment
V612 An unconditional 'return' within a loop. bufferfragment_p.h 94
BufferFragment split(char c, unsigned int* start)
{
while (*start < len) {
int end = indexOf(c, *start);
if (end == -1) end = len;
BufferFragment line(d + (*start), end - (*start));
*start = end + 1;
return line;
}
return BufferFragment();
}
Miranda NG
V612 An unconditional 'break' within a loop. Popup skin.cpp 807
bool PopupSkin::load(LPCTSTR dir)
{
....
while (hFind != INVALID_HANDLE_VALUE) {
loadSkin(ffd.cFileName);
break;
if (!FindNextFile(hFind, &ffd))
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. ICQ icq_servlist.cpp 226
- V612 An unconditional 'continue' within a loop. Ping rawping.cpp 159
- V612 An unconditional 'return' within a loop. NotifyAnything main.cpp 304
- And 1 additional diagnostic messages.
LibreOffice
V612 An unconditional 'break' within a loop. dp_manager.cxx 100
OUString getExtensionFolder(....)
{
....
while (xResultSet->next())
{
title = Reference<sdbc::XRow>(
xResultSet, UNO_QUERY_THROW )->getString(1 /* Title */ ) ;
break;
}
return title;
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. svdfppt.cxx 3260
- V612 An unconditional 'break' within a loop. svdfppt.cxx 3311
- V612 An unconditional 'break' within a loop. personalization.cxx 454
Unreal Engine 4
V612 An unconditional 'return' within a loop. codegenerator.cpp 2682
bool FNativeClassHeaderGenerator::WillExportEventParms(....)
{
for(TFieldIterator<UProperty> It(....); It && (It->....); ++It)
{
return true;
}
return false;
}
Unreal Engine 4
V612 An unconditional 'return' within a loop. unrealaudiotestgenerators.cpp 49
static float WrapTwoPi(float Value)
{
while (Value >= TWO_PI)
{
return Value -= TWO_PI;
}
while (Value < 0)
{
return Value += TWO_PI;
}
return Value;
}
Similar errors can be found in some other places:
- V612 An unconditional 'return' within a loop. unrealaudiotestgenerators.cpp 54
FreeSWITCH
V612 An unconditional 'goto' within a loop. mod_verto.c 112
static void json_cleanup(void)
{
....
top:
for (hi = switch_core_hash_first_iter(....); hi;) {
switch_core_hash_this(hi, &var, NULL, &val);
json = (cJSON *) val;
cJSON_Delete(json);
switch_core_hash_delete(json_GLOBALS.store_hash, var);
goto top;
}
switch_safe_free(hi);
switch_mutex_unlock(json_GLOBALS.store_mutex);
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. mod_event_socket.c 1643
- V612 An unconditional 'goto' within a loop. mod_verto.c 328
- V612 An unconditional 'break' within a loop. mod_verto.c 1993
Unreal Engine 4
V612 An unconditional 'break' within a loop. profilermanager.cpp 717
void FProfilerManager::TrackDefaultStats()
{
// Find StatId for the game thread.
for( auto It = GetProfilerInstancesIterator(); It; ++It )
{
FProfilerSessionRef ProfilerSession = It.Value();
if( ProfilerSession->GetMetaData()->IsReady() )
{
....;
}
break;
}
}
Casablanca
V612 An unconditional 'break' within a loop. BlackJack_Client140 messagetypes.h 213
web::json::value AsJSON() const
{
....
int idx = 0;
for (auto iter = cards.begin(); iter != cards.end();)
{
jCards[idx++] = iter->AsJSON();
break;
}
....
}
Inkscape
V612 An unconditional 'break' within a loop. text_reassemble.c 417
int TR_kern_gap(....)
{
....
while(ptsp && tsp){
....
if(!text32){
....
if(!text32)break;
}
....
if(!ptxt32){
....
if(!ptxt32)break;
}
....
break; // <=
}
....
return(kern);
}
LLVM/Clang
V612 An unconditional 'break' within a loop. MachODump.cpp 1206
static bool checkMachOAndArchFlags(....) {
....
unsigned i;
for (i = 0; i < ArchFlags.size(); ++i) {
if (ArchFlags[i] == T.getArchName())
ArchFound = true;
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'return' within a loop. R600OptimizeVectorRegisters.cpp 54
- V612 An unconditional 'break' within a loop. llvm-size.cpp 525
CMaNGOS
V612 An unconditional 'break' within a loop. Pet.cpp 1956
void Pet::InitPetCreateSpells()
{
....
for (SkillLineAbilityMap::const_iterator
_spell_idx = bounds.first; _spell_idx != bounds.second;
++_spell_idx)
{
usedtrainpoints += _spell_idx->second->reqtrainpoints;
break;
}
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'break' within a loop. Pet.cpp 895
Audacity
V612 An unconditional 'return' within a loop. Equalization.cpp 379
bool EffectEqualization::ValidateUI()
{
while (mDisallowCustom && mCurveName.IsSameAs(wxT("unnamed")))
{
wxMessageBox(_("...."),
_("EQ Curve needs a different name"),
wxOK | wxCENTRE,
mUIParent);
return false;
}
....
}
Rosegarden
V612 An unconditional 'break' within a loop. Fingering.cpp 83
Fingering::Barre
Fingering::getBarre() const
{
int lastStringStatus = m_strings[getNbStrings() - 1];
Barre res;
res.fret = lastStringStatus;
for(unsigned int i = 0; i < 3; ++i) {
if (m_strings[i] > OPEN && m_strings[i] == lastStringStatus)
res.start = i;
break;
}
res.end = 5;
return res;
}
XNU kernel
V612 CWE-670 An unconditional 'goto' within a loop. kern_descrip.c 628
int
dup2(proc_t p, struct dup2_args *uap, int32_t *retval)
{
....
while ((fdp->fd_ofileflags[new] & UF_RESERVED) == UF_RESERVED)
{
fp_drop(p, old, fp, 1);
procfdtbl_waitfd(p, new);
#if DIAGNOSTIC
proc_fdlock_assert(p, LCK_MTX_ASSERT_OWNED);
#endif
goto startover;
}
....
startover:
....
}
Strange loop body at the end of which there is an unconditional transition to the label startover.
Similar errors can be found in some other places:
- V612 CWE-670 An unconditional 'goto' within a loop. tty.c 1084
- V612 CWE-670 An unconditional 'goto' within a loop. vm_purgeable.c 842
- V612 CWE-670 An unconditional 'return' within a loop. kern_credential.c 930
RT-Thread
V612 CWE-670 An unconditional 'return' within a loop. stm32f7xx_ll_fmc.c 1029
HAL_StatusTypeDef FMC_SDRAM_SendCommand(....)
{
....
/* wait until command is send */
while(HAL_IS_BIT_SET(Device->SDSR, FMC_SDSR_BUSY))
{
/* Check for the Timeout */
if(Timeout != HAL_MAX_DELAY)
{
if((Timeout == 0)||((HAL_GetTick() - tickstart) > Timeout))
{
return HAL_TIMEOUT;
}
}
return HAL_ERROR;
}
return HAL_OK;
}
LibreOffice
V612 An unconditional 'return' within a loop. pormulti.cxx 891
SwTextAttr const* MergedAttrIterMulti::NextAttr(....)
{
....
SwpHints const*const pHints(m_pNode->GetpSwpHints());
if (pHints)
{
while (m_CurrentHint < pHints->Count())
{
SwTextAttr const*const pHint(pHints->Get(m_CurrentHint));
++m_CurrentHint;
rpNode = m_pNode;
return pHint;
}
}
return nullptr;
....
}
Similar errors can be found in some other places:
- V612 An unconditional 'return' within a loop. txtfrm.cxx 144
- V612 An unconditional 'return' within a loop. txtfrm.cxx 202
- V612 An unconditional 'return' within a loop. txtfrm.cxx 279
LLVM/Clang
V612 [CWE-670] An unconditional 'return' within a loop. R600OptimizeVectorRegisters.cpp 63
static bool
isImplicitlyDef(MachineRegisterInfo &MRI, unsigned Reg) {
for (MachineRegisterInfo::def_instr_iterator It = MRI.def_instr_begin(Reg),
E = MRI.def_instr_end(); It != E; ++It) {
return (*It).isImplicitDef();
}
....
}
MuseScore
V612 An unconditional 'return' within a loop. noteinputbarmodel.cpp 371
int NoteInputBarModel::resolveCurrentVoiceIndex() const
{
....
for (const Element* element: selection()->elements()) {
return element->voice();
}
....
}
CARLA
V612 An unconditional 'return' within a loop. EndPoint.h 84
static inline auto make_address(const std::string &address) {
....
boost::asio::ip::tcp::resolver::iterator iter = resolver.resolve(query);
boost::asio::ip::tcp::resolver::iterator end;
while (iter != end)
{
boost::asio::ip::tcp::endpoint endpoint = *iter++;
return endpoint.address();
}
return boost::asio::ip::make_address(address);
}
GCC
V612 An unconditional 'break' within a loop. ree.cc 985
static bool
combine_reaching_defs (ext_cand *cand,
const_rtx set_pat,
ext_state *state)
{
....
while ( REG_P (SET_SRC (*dest_sub_rtx))
&& (REGNO (SET_SRC (*dest_sub_rtx)) == REGNO (SET_DEST (set))))
{
....
if (....)
break;
if (....)
break;
....
break;
}
}
Xenia
V612 An unconditional 'return' within a loop. single_layout_descriptor_set_pool.cc 110
size_t SingleLayoutDescriptorSetPool::Allocate()
{
....
// Two iterations so if vkAllocateDescriptorSets fails
// even with a non-zero current_pool_sets_remaining_,
// another attempt will be made in a new pool.
for (uint32_t i = 0; i < 2; ++i)
{
if ( current_pool_ != VK_NULL_HANDLE
&& !current_pool_sets_remaining_)
{
full_pools_.push_back(current_pool_);
current_pool_ = VK_NULL_HANDLE;
}
....
--current_pool_sets_remaining_;
descriptor_sets_.push_back(descriptor_set);
return descriptor_sets_.size() - 1;
}
....
}