svf-tools 1.0.751 → 1.0.752
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/SVFBugReport_8cpp_source.html +371 -369
- package/SVF-doxygen/html/html/SVFBugReport_8h_source.html +63 -51
- package/SVF-doxygen/html/html/classSVF_1_1BufferOverflowBug.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeBug.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1FileNeverCloseBug.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FilePartialCloseBug.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1FullNullPtrDereferenceBug.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1GenericBug.html +17 -15
- package/SVF-doxygen/html/html/classSVF_1_1NeverFreeBug.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PartialLeakBug.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1PartialNullPtrDereferenceBug.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFBugEvent.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1SVFBugReport.html +113 -99
- package/package.json +1 -1
- package/svf/include/Util/SVFBugReport.h +12 -0
- package/svf/lib/Util/SVFBugReport.cpp +3 -1
|
@@ -163,13 +163,13 @@ Protected Attributes</h2></td></tr>
|
|
|
163
163
|
</table>
|
|
164
164
|
</div><div class="memdoc">
|
|
165
165
|
|
|
166
|
-
<p class="definition">Definition at line <a class="el" href="SVFBugReport_8cpp_source.html#
|
|
167
|
-
<div class="fragment"><div class="line"><a name="
|
|
168
|
-
<div class="line"><a name="
|
|
169
|
-
<div class="line"><a name="
|
|
170
|
-
<div class="line"><a name="
|
|
171
|
-
<div class="line"><a name="
|
|
172
|
-
<div class="line"><a name="
|
|
166
|
+
<p class="definition">Definition at line <a class="el" href="SVFBugReport_8cpp_source.html#l00332">332</a> of file <a class="el" href="SVFBugReport_8cpp_source.html">SVFBugReport.cpp</a>.</p>
|
|
167
|
+
<div class="fragment"><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> {</div>
|
|
168
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugIt: <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>)</div>
|
|
169
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div>
|
|
170
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">delete</span> bugIt;</div>
|
|
171
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div>
|
|
172
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> }</div>
|
|
173
173
|
</div><!-- fragment -->
|
|
174
174
|
</div>
|
|
175
175
|
</div>
|
|
@@ -250,16 +250,28 @@ Protected Attributes</h2></td></tr>
|
|
|
250
250
|
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>.insert(newBug);</div>
|
|
251
251
|
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">break</span>;</div>
|
|
252
252
|
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
|
253
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">
|
|
253
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1GenericBug.html#a7aeeb33097bca5f7fe6747f90f5cecaca4b2e0cde4ea45fb6a32a58343183d1d7">GenericBug::FULLNULLPTRDEREFERENCE</a>:</div>
|
|
254
254
|
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  {</div>
|
|
255
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> 
|
|
256
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <
|
|
257
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> 
|
|
255
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  newBug = <span class="keyword">new</span> FullNullPtrDereferenceBug(eventStack);</div>
|
|
256
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>.insert(newBug);</div>
|
|
257
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">break</span>;</div>
|
|
258
258
|
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  }</div>
|
|
259
|
-
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div>
|
|
260
|
-
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> 
|
|
261
|
-
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> 
|
|
262
|
-
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> 
|
|
259
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1GenericBug.html#a7aeeb33097bca5f7fe6747f90f5cecacade2b0d0e5144ded25391bcfa8fa10c64">GenericBug::PARTIALNULLPTRDEREFERENCE</a>:</div>
|
|
260
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  {</div>
|
|
261
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  newBug = <span class="keyword">new</span> PartialNullPtrDereferenceBug(eventStack);</div>
|
|
262
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>.insert(newBug);</div>
|
|
263
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">break</span>;</div>
|
|
264
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div>
|
|
265
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">default</span>:</div>
|
|
266
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div>
|
|
267
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Abstract Execution does NOT hava his bug type!"</span>);</div>
|
|
268
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">break</span>;</div>
|
|
269
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div>
|
|
270
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div>
|
|
271
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
|
|
272
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">// when add a bug, also print it to terminal</span></div>
|
|
273
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  newBug->printBugToTerminal();</div>
|
|
274
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div>
|
|
263
275
|
</div><!-- fragment -->
|
|
264
276
|
</div>
|
|
265
277
|
</div>
|
|
@@ -366,89 +378,89 @@ Protected Attributes</h2></td></tr>
|
|
|
366
378
|
<p>dump single bug to json str and write to file</p>
|
|
367
379
|
<p>destroy the <a class="el" href="structcJSON.html">cJSON</a> object</p>
|
|
368
380
|
|
|
369
|
-
<p class="definition">Definition at line <a class="el" href="SVFBugReport_8cpp_source.html#
|
|
370
|
-
<div class="fragment"><div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
373
|
-
<div class="line"><a name="
|
|
374
|
-
<div class="line"><a name="
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  </div>
|
|
379
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  ofstream jsonFile(filePath, ios::out);</div>
|
|
381
|
+
<p class="definition">Definition at line <a class="el" href="SVFBugReport_8cpp_source.html#l00340">340</a> of file <a class="el" href="SVFBugReport_8cpp_source.html">SVFBugReport.cpp</a>.</p>
|
|
382
|
+
<div class="fragment"><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> {</div>
|
|
383
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  std::map<u32_t, std::string> eventType2Str =</div>
|
|
384
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div>
|
|
385
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {<a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3aa16d1c3d5b68a356288ba49f4aee1629">SVFBugEvent::CallSite</a>, <span class="stringliteral">"call site"</span>},</div>
|
|
386
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {<a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3af8ef890358aa9e45bc09407fc8cd36b6">SVFBugEvent::Caller</a>, <span class="stringliteral">"caller"</span>},</div>
|
|
387
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {<a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3aa6d697ba9fc671288636733b8f4678a7">SVFBugEvent::Loop</a>, <span class="stringliteral">"loop"</span>},</div>
|
|
388
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {<a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854">SVFBugEvent::Branch</a>, <span class="stringliteral">"branch"</span>}</div>
|
|
389
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  };</div>
|
|
380
390
|
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  </div>
|
|
381
|
-
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  jsonFile
|
|
391
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  ofstream jsonFile(filePath, ios::out);</div>
|
|
382
392
|
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
|
|
383
|
-
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> 
|
|
384
|
-
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> 
|
|
385
|
-
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> 
|
|
386
|
-
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> 
|
|
387
|
-
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> 
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="
|
|
390
|
-
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
|
|
391
|
-
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <
|
|
392
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> 
|
|
393
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> 
|
|
394
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
395
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
396
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> 
|
|
397
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> 
|
|
398
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <
|
|
399
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> 
|
|
400
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div>
|
|
401
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  cJSON_AddItemToObject(singleBug, <span class="stringliteral">"
|
|
393
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  jsonFile << <span class="stringliteral">"["</span>;</div>
|
|
394
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  </div>
|
|
395
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordtype">size_t</span> commaCounter = <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>.size() - 1; <span class="comment">// comma num needed</span></div>
|
|
396
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugPtr : <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>)</div>
|
|
397
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div>
|
|
398
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="structcJSON.html">cJSON</a> *singleBug = cJSON_CreateObject();</div>
|
|
399
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  </div>
|
|
400
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="structcJSON.html">cJSON</a> *bugType = cJSON_CreateString(<a class="code" href="classSVF_1_1GenericBug.html#a5cfadd60fc90ea6cb7b51aa1f292b6a3">GenericBug::BugType2Str</a>.at(bugPtr->getBugType()).c_str());</div>
|
|
401
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  cJSON_AddItemToObject(singleBug, <span class="stringliteral">"DefectType"</span>, bugType);</div>
|
|
402
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
|
|
403
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="structcJSON.html">cJSON</a> *bugLoc = cJSON_Parse(bugPtr->getLoc().c_str());</div>
|
|
404
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span>(bugLoc == <span class="keyword">nullptr</span>)</div>
|
|
405
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div>
|
|
406
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  bugLoc = cJSON_CreateObject();</div>
|
|
407
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div>
|
|
408
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  cJSON_AddItemToObject(singleBug, <span class="stringliteral">"Location"</span>, bugLoc);</div>
|
|
409
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
|
|
410
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="structcJSON.html">cJSON</a> *bugFunction = cJSON_CreateString(bugPtr->getFuncName().c_str());</div>
|
|
411
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  cJSON_AddItemToObject(singleBug, <span class="stringliteral">"Function"</span>, bugFunction);</div>
|
|
402
412
|
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <
|
|
406
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> 
|
|
407
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> 
|
|
408
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> 
|
|
409
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> 
|
|
410
|
-
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> 
|
|
411
|
-
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> 
|
|
412
|
-
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> 
|
|
413
|
-
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> 
|
|
414
|
-
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  </div>
|
|
415
|
-
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> 
|
|
416
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> 
|
|
417
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="structcJSON.html">cJSON</a> *
|
|
418
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> 
|
|
419
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <
|
|
420
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <
|
|
421
|
-
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> 
|
|
422
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <
|
|
423
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <
|
|
424
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="
|
|
425
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
426
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
427
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
428
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> 
|
|
429
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
430
|
-
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <
|
|
431
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> 
|
|
432
|
-
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  </div>
|
|
433
|
-
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> 
|
|
434
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> 
|
|
435
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> 
|
|
436
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> 
|
|
437
|
-
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> 
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="
|
|
441
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> 
|
|
442
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> 
|
|
443
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> 
|
|
444
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> 
|
|
445
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> 
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
|
|
449
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> 
|
|
450
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> 
|
|
451
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> 
|
|
413
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  cJSON_AddItemToObject(singleBug, <span class="stringliteral">"Description"</span>, bugPtr->getBugDescription());</div>
|
|
414
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
|
|
415
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="structcJSON.html">cJSON</a> *eventList = cJSON_CreateArray();</div>
|
|
416
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &bugEventStack = bugPtr->getEventStack();</div>
|
|
417
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BufferOverflowBug.html#a236e3cf3e81ec4248547b3011323e45f">BufferOverflowBug::classof</a>(bugPtr))</div>
|
|
418
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div>
|
|
419
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="comment">// add only when bug is context sensitive</span></div>
|
|
420
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&event : bugEventStack)</div>
|
|
421
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  {</div>
|
|
422
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">if</span> (event.getEventType() == <a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3ace4540f37504bfbfab8451b8823fe999">SVFBugEvent::SourceInst</a>)</div>
|
|
423
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div>
|
|
424
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">continue</span>;</div>
|
|
425
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div>
|
|
426
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  </div>
|
|
427
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="structcJSON.html">cJSON</a> *singleEvent = cJSON_CreateObject();</div>
|
|
428
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="comment">//event type</span></div>
|
|
429
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="structcJSON.html">cJSON</a> *eventType = cJSON_CreateString(eventType2Str[event.getEventType()].c_str());</div>
|
|
430
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  cJSON_AddItemToObject(singleEvent, <span class="stringliteral">"EventType"</span>, eventType);</div>
|
|
431
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="comment">//function name</span></div>
|
|
432
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="structcJSON.html">cJSON</a> *eventFunc = cJSON_CreateString(event.getFuncName().c_str());</div>
|
|
433
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  cJSON_AddItemToObject(singleEvent, <span class="stringliteral">"Function"</span>, eventFunc);</div>
|
|
434
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">//event loc</span></div>
|
|
435
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="structcJSON.html">cJSON</a> *eventLoc = cJSON_Parse(event.getEventLoc().c_str());</div>
|
|
436
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span>(eventLoc == <span class="keyword">nullptr</span>)</div>
|
|
437
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
438
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  eventLoc = cJSON_CreateObject();</div>
|
|
439
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
|
440
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  cJSON_AddItemToObject(singleEvent, <span class="stringliteral">"Location"</span>, eventLoc);</div>
|
|
441
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="comment">//event description</span></div>
|
|
442
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="structcJSON.html">cJSON</a> *eventDescription = cJSON_CreateString(event.getEventDescription().c_str());</div>
|
|
443
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  cJSON_AddItemToObject(singleEvent, <span class="stringliteral">"Description"</span>, eventDescription);</div>
|
|
444
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  </div>
|
|
445
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  cJSON_AddItemToArray(eventList, singleEvent);</div>
|
|
446
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  }</div>
|
|
447
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div>
|
|
448
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  cJSON_AddItemToObject(singleBug, <span class="stringliteral">"Events"</span>, eventList);</div>
|
|
449
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
|
|
450
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordtype">char</span> *singleBugStr = cJSON_Print(singleBug);</div>
|
|
451
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  jsonFile << singleBugStr;</div>
|
|
452
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (commaCounter != 0)</div>
|
|
453
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div>
|
|
454
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  jsonFile << <span class="stringliteral">",\n"</span>;</div>
|
|
455
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div>
|
|
456
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  commaCounter --;</div>
|
|
457
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
|
|
458
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a>(singleBug);</div>
|
|
459
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div>
|
|
460
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  </div>
|
|
461
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  jsonFile << <span class="stringliteral">"]"</span>;</div>
|
|
462
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  jsonFile.close();</div>
|
|
463
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> }</div>
|
|
452
464
|
</div><!-- fragment -->
|
|
453
465
|
</div>
|
|
454
466
|
</div>
|
|
@@ -475,10 +487,10 @@ Protected Attributes</h2></td></tr>
|
|
|
475
487
|
</table>
|
|
476
488
|
</div><div class="memdoc">
|
|
477
489
|
|
|
478
|
-
<p class="definition">Definition at line <a class="el" href="SVFBugReport_8h_source.html#
|
|
479
|
-
<div class="fragment"><div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
490
|
+
<p class="definition">Definition at line <a class="el" href="SVFBugReport_8h_source.html#l00409">409</a> of file <a class="el" href="SVFBugReport_8h_source.html">SVFBugReport.h</a>.</p>
|
|
491
|
+
<div class="fragment"><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div>
|
|
492
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBugReport.html#acacf8d5aa4aab95be34a5a1cb21838b3">bugSet</a>;</div>
|
|
493
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div>
|
|
482
494
|
</div><!-- fragment -->
|
|
483
495
|
</div>
|
|
484
496
|
</div>
|
|
@@ -528,9 +540,11 @@ Protected Attributes</h2></td></tr>
|
|
|
528
540
|
<div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a4d0c0744525bc445a64176c3808377f3aa16d1c3d5b68a356288ba49f4aee1629"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3aa16d1c3d5b68a356288ba49f4aee1629">SVF::SVFBugEvent::CallSite</a></div><div class="ttdeci">@ CallSite</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00058">SVFBugReport.h:58</a></div></div>
|
|
529
541
|
<div class="ttc" id="aclassSVF_1_1GenericBug_html_a7aeeb33097bca5f7fe6747f90f5cecaca1f91a40ca53eb077cc947fae828554b4"><div class="ttname"><a href="classSVF_1_1GenericBug.html#a7aeeb33097bca5f7fe6747f90f5cecaca1f91a40ca53eb077cc947fae828554b4">SVF::GenericBug::DOUBLEFREE</a></div><div class="ttdeci">@ DOUBLEFREE</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00086">SVFBugReport.h:86</a></div></div>
|
|
530
542
|
<div class="ttc" id="aclassSVF_1_1GenericBug_html_a5cfadd60fc90ea6cb7b51aa1f292b6a3"><div class="ttname"><a href="classSVF_1_1GenericBug.html#a5cfadd60fc90ea6cb7b51aa1f292b6a3">SVF::GenericBug::BugType2Str</a></div><div class="ttdeci">static const std::map< GenericBug::BugType, std::string > BugType2Str</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00087">SVFBugReport.h:87</a></div></div>
|
|
543
|
+
<div class="ttc" id="aclassSVF_1_1GenericBug_html_a7aeeb33097bca5f7fe6747f90f5cecaca4b2e0cde4ea45fb6a32a58343183d1d7"><div class="ttname"><a href="classSVF_1_1GenericBug.html#a7aeeb33097bca5f7fe6747f90f5cecaca4b2e0cde4ea45fb6a32a58343183d1d7">SVF::GenericBug::FULLNULLPTRDEREFERENCE</a></div><div class="ttdeci">@ FULLNULLPTRDEREFERENCE</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00086">SVFBugReport.h:86</a></div></div>
|
|
531
544
|
<div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854">SVF::SVFBugEvent::Branch</a></div><div class="ttdeci">@ Branch</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00056">SVFBugReport.h:56</a></div></div>
|
|
532
545
|
<div class="ttc" id="aclassSVF_1_1SVFBugEvent_html"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html">SVF::SVFBugEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00051">SVFBugReport.h:51</a></div></div>
|
|
533
546
|
<div class="ttc" id="aclassSVF_1_1GenericBug_html_a7aeeb33097bca5f7fe6747f90f5cecacadb1a72cee4debc5821c1e209b5c85cf2"><div class="ttname"><a href="classSVF_1_1GenericBug.html#a7aeeb33097bca5f7fe6747f90f5cecacadb1a72cee4debc5821c1e209b5c85cf2">SVF::GenericBug::PARTIALBUFOVERFLOW</a></div><div class="ttdeci">@ PARTIALBUFOVERFLOW</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00086">SVFBugReport.h:86</a></div></div>
|
|
547
|
+
<div class="ttc" id="aclassSVF_1_1GenericBug_html_a7aeeb33097bca5f7fe6747f90f5cecacade2b0d0e5144ded25391bcfa8fa10c64"><div class="ttname"><a href="classSVF_1_1GenericBug.html#a7aeeb33097bca5f7fe6747f90f5cecacade2b0d0e5144ded25391bcfa8fa10c64">SVF::GenericBug::PARTIALNULLPTRDEREFERENCE</a></div><div class="ttdeci">@ PARTIALNULLPTRDEREFERENCE</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00086">SVFBugReport.h:86</a></div></div>
|
|
534
548
|
<!-- start footer part -->
|
|
535
549
|
<hr class="footer"/><address class="footer"><small>
|
|
536
550
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.752",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -373,6 +373,18 @@ public:
|
|
|
373
373
|
bugSet.insert(newBug);
|
|
374
374
|
break;
|
|
375
375
|
}
|
|
376
|
+
case GenericBug::FULLNULLPTRDEREFERENCE:
|
|
377
|
+
{
|
|
378
|
+
newBug = new FullNullPtrDereferenceBug(eventStack);
|
|
379
|
+
bugSet.insert(newBug);
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
case GenericBug::PARTIALNULLPTRDEREFERENCE:
|
|
383
|
+
{
|
|
384
|
+
newBug = new PartialNullPtrDereferenceBug(eventStack);
|
|
385
|
+
bugSet.insert(newBug);
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
376
388
|
default:
|
|
377
389
|
{
|
|
378
390
|
assert(false && "Abstract Execution does NOT hava his bug type!");
|
|
@@ -43,7 +43,9 @@ const std::map<GenericBug::BugType, std::string> GenericBug::BugType2Str =
|
|
|
43
43
|
{GenericBug::PARTIALLEAK, "Partial Leak"},
|
|
44
44
|
{GenericBug::FILENEVERCLOSE, "File Never Close"},
|
|
45
45
|
{GenericBug::FILEPARTIALCLOSE, "File Partial Close"},
|
|
46
|
-
{GenericBug::DOUBLEFREE, "Double Free"}
|
|
46
|
+
{GenericBug::DOUBLEFREE, "Double Free"},
|
|
47
|
+
{GenericBug::FULLNULLPTRDEREFERENCE, "Full Null Ptr Dereference"},
|
|
48
|
+
{GenericBug::PARTIALNULLPTRDEREFERENCE, "Partial Null Ptr Dereference"}
|
|
47
49
|
};
|
|
48
50
|
|
|
49
51
|
const std::string GenericBug::getLoc() const
|