Merge pull request #401 from microsoft/nomagic-getanaccess-csharp · microsoft/codeql@5506776 · GitHub
Skip to content

Commit 5506776

Browse files
authored
Merge pull request #401 from microsoft/nomagic-getanaccess-csharp
C#: Prevent bad magic in `getAnAccess`
2 parents a06c93b + d34b7af commit 5506776

4 files changed

Lines changed: 7 additions & 0 deletions

File tree

‎csharp/ql/lib/semmle/code/csharp/Assignable.qll‎

Lines changed: 2 additions & 0 deletions

‎csharp/ql/lib/semmle/code/csharp/Member.qll‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ class Modifiable extends Declaration, @modifiable {
238238
/** A declaration that is a member of a type. */
239239
class Member extends Modifiable, @member {
240240
/** Gets an access to this member. */
241+
pragma[nomagic]
241242
MemberAccess getAnAccess() { result.getTarget() = this }
242243

243244
/**

‎csharp/ql/lib/semmle/code/csharp/Property.qll‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ class Property extends DeclarationWithGetSetAccessors, @property {
217217
result = DeclarationWithGetSetAccessors.super.getAnUltimateImplementor()
218218
}
219219

220+
pragma[nomagic]
220221
override PropertyAccess getAnAccess() { result.getTarget() = this }
221222

222223
override Location getALocation() { property_location(this.getUnboundDeclaration(), result) }
@@ -326,6 +327,7 @@ class Indexer extends DeclarationWithGetSetAccessors, Parameterizable, @indexer
326327
indexers(this, _, _, getTypeRef(result), _)
327328
}
328329

330+
pragma[nomagic]
329331
override IndexerAccess getAnAccess() { result.getTarget() = this }
330332

331333
/**

‎csharp/ql/lib/semmle/code/csharp/Variable.qll‎

Lines changed: 2 additions & 0 deletions

0 commit comments

Comments
 (0)