[llvm-dev] LLVM Call Graph may not cover all calls

changze cui via llvm-dev llvm-dev at lists.llvm.org
Wed Nov 7 19:27:58 PST 2018


Hi there,
   I am working with opt-6.0 and try to generate a call graph of
libsndfile, but it seems the call graph doesn't cover all call relationship.
   Actually, I am doing static analysis on *CVE-2014-8130*, which is a zero
division on libtiff/tif_write.c  TIFFWriteScanline.   (see
https://security-tracker.debian.org/tracker/CVE-2014-8130)
   Theoretically, the main function in tiffdither.c will call fsdither, and
fsdither will call TIFFWriteScanLine.   main (tiffdither.c) -> fsdither
(tiffdither.c) -> TIFFWriteScanLine (tif_write.c)
   I want to get a call graph of the buggy program tiffdither but I find
the call graph generated doesn't cover the call relationship from fsdither
->  TIFFWriteScanLine.
   For short, the call graph now shows TIFFWriteScanLine is only called by
an external node.
   I already compile tiffdither, and I upload it as an attached file. I
also write a small python to help analyze the dot file.
   Actually, I do  opt-6.0 -analyze -dot-callgraph tiffdither.bc to
generate the dot file. And then modify the dotPath in dotHandle.py. You can
modify the python code to help analyze.
   I can't figure out why this happens, and I will be very appreciate if
you can help!

Thanks & Regards,
Chaz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181108/ae3808dd/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tiffdither.bc
Type: application/octet-stream
Size: 2081632 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181108/ae3808dd/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dotHandle.py
Type: text/x-python
Size: 2086 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181108/ae3808dd/attachment-0001.py>


More information about the llvm-dev mailing list