svf-tools 1.0.1087 → 1.0.1089
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1089",
|
|
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": {
|
|
@@ -133,15 +133,14 @@ void BufOverflowDetector::handleStubFunctions(const SVF::CallICFGNode* callNode)
|
|
|
133
133
|
bool isSafe = canSafelyAccessMemory(as, arg0Val, val);
|
|
134
134
|
if (isSafe)
|
|
135
135
|
{
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
SVFUtil::outs() << SVFUtil::sucMsg("success: expected safe buffer access at SAFE_BUFACCESS")
|
|
137
|
+
<< " — " << callNode->toString() << "\n";
|
|
138
138
|
return;
|
|
139
139
|
}
|
|
140
140
|
else
|
|
141
141
|
{
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
std::cerr << err_msg << std::endl;
|
|
142
|
+
SVFUtil::outs() << SVFUtil::errMsg("failure: unexpected buffer overflow at SAFE_BUFACCESS")
|
|
143
|
+
<< " — Position: " << callNode->getSourceLoc() << "\n";
|
|
145
144
|
assert(false);
|
|
146
145
|
}
|
|
147
146
|
}
|
|
@@ -162,14 +161,14 @@ void BufOverflowDetector::handleStubFunctions(const SVF::CallICFGNode* callNode)
|
|
|
162
161
|
bool isSafe = canSafelyAccessMemory(as, arg0Val, val);
|
|
163
162
|
if (!isSafe)
|
|
164
163
|
{
|
|
165
|
-
|
|
164
|
+
SVFUtil::outs() << SVFUtil::sucMsg("success: expected buffer overflow at UNSAFE_BUFACCESS")
|
|
165
|
+
<< " — " << callNode->toString() << "\n";
|
|
166
166
|
return;
|
|
167
167
|
}
|
|
168
168
|
else
|
|
169
169
|
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
std::cerr << err_msg << std::endl;
|
|
170
|
+
SVFUtil::outs() << SVFUtil::errMsg("failure: buffer overflow expected at UNSAFE_BUFACCESS, but none detected")
|
|
171
|
+
<< " — Position: " << callNode->getSourceLoc() << "\n";
|
|
173
172
|
assert(false);
|
|
174
173
|
}
|
|
175
174
|
}
|
|
@@ -568,14 +567,14 @@ void NullptrDerefDetector::handleStubFunctions(const CallICFGNode* callNode)
|
|
|
568
567
|
bool isSafe = canSafelyDerefPtr(as, arg0Val) && arg0Val->getId() != 0;
|
|
569
568
|
if (!isSafe)
|
|
570
569
|
{
|
|
571
|
-
|
|
570
|
+
SVFUtil::outs() << SVFUtil::sucMsg("success: expected null dereference at UNSAFE_LOAD")
|
|
571
|
+
<< " — " << callNode->toString() << "\n";
|
|
572
572
|
return;
|
|
573
573
|
}
|
|
574
574
|
else
|
|
575
575
|
{
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
std::cerr << err_msg << std::endl;
|
|
576
|
+
SVFUtil::outs() << SVFUtil::errMsg("failure: null dereference expected at UNSAFE_LOAD, but none detected")
|
|
577
|
+
<< " — Position: " << callNode->getSourceLoc() << "\n";
|
|
579
578
|
assert(false);
|
|
580
579
|
}
|
|
581
580
|
}
|
|
@@ -590,14 +589,14 @@ void NullptrDerefDetector::handleStubFunctions(const CallICFGNode* callNode)
|
|
|
590
589
|
bool isSafe = canSafelyDerefPtr(as, arg0Val) && arg0Val->getId() != 0;
|
|
591
590
|
if (isSafe)
|
|
592
591
|
{
|
|
593
|
-
|
|
592
|
+
SVFUtil::outs() << SVFUtil::sucMsg("success: expected safe dereference at SAFE_LOAD")
|
|
593
|
+
<< " — " << callNode->toString() << "\n";
|
|
594
594
|
return;
|
|
595
595
|
}
|
|
596
596
|
else
|
|
597
597
|
{
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
std::cerr << err_msg << std::endl;
|
|
598
|
+
SVFUtil::outs() << SVFUtil::errMsg("failure: unexpected null dereference at SAFE_LOAD")
|
|
599
|
+
<< " — Position: " << callNode->getSourceLoc() << "\n";
|
|
601
600
|
assert(false);
|
|
602
601
|
}
|
|
603
602
|
}
|