-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Brodes/seh flow phase1 throwing models #18014
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 13 commits
de05aee
4b83a45
1c7b5ae
792231c
1c874d3
5bb765d
26d590a
63ddd81
0784776
ae1ed38
a69daa0
23485f1
4e77756
69df07e
6aa7412
9b2590e
4412691
7059fc3
248f1c4
583651b
66cf736
37365c7
e6641e7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| category: minorAnalysis | ||
| --- | ||
| * Removed NonThrowing.qll. Throwing meta-data now part of Throwing.qll. Updated models and IR to use the new Throwing library and predicates. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,7 +9,7 @@ import semmle.code.cpp.models.interfaces.DataFlow | |
| import semmle.code.cpp.models.interfaces.Alias | ||
| import semmle.code.cpp.models.interfaces.SideEffect | ||
| import semmle.code.cpp.models.interfaces.Taint | ||
| import semmle.code.cpp.models.interfaces.NonThrowing | ||
| import semmle.code.cpp.models.interfaces.Throwing | ||
|
|
||
| /** | ||
| * The standard functions `memcpy`, `memmove` and `bcopy`; and the gcc variant | ||
|
|
@@ -106,6 +106,8 @@ private class MemcpyFunction extends ArrayFunction, DataFlowFunction, SideEffect | |
| not this.hasGlobalName(["bcopy", mempcpy(), "memccpy"]) and | ||
| index = this.getParamDest() | ||
| } | ||
|
|
||
| override TCxxException getExceptionType() { any() } | ||
|
||
| } | ||
|
|
||
| private string mempcpy() { result = ["mempcpy", "wmempcpy"] } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,11 @@ | ||
| import semmle.code.cpp.models.interfaces.Throwing | ||
|
|
||
| class WindowsDriverFunction extends ThrowingFunction { | ||
| WindowsDriverFunction() { | ||
| class WindowsDriverExceptionAnnotation extends ThrowingFunction { | ||
| WindowsDriverExceptionAnnotation() { | ||
| this.hasGlobalName(["RaiseException", "ExRaiseAccessViolation", "ExRaiseDatatypeMisalignment"]) | ||
| } | ||
|
|
||
| final override predicate mayThrowException(boolean unconditional) { unconditional = true } | ||
| override predicate mayThrowException(boolean unconditional) { unconditional = true } | ||
|
|
||
| override TSehException getExceptionType() { any() } | ||
| } |
Uh oh!
There was an error while loading. Please reload this page.