File tree Expand file tree Collapse file tree 2 files changed +33
-9
lines changed
cpp/ql/test/query-tests/jsf/4.10 Classes/AV Rule 79 Expand file tree Collapse file tree 2 files changed +33
-9
lines changed Original file line number Diff line number Diff line change 88| DeleteThis.cpp:56:3:56:24 | ... = ... | Resource ptr10 is acquired by class MyClass3 but not released anywhere in this class. |
99| DeleteThis.cpp:58:3:58:24 | ... = ... | Resource ptr12 is acquired by class MyClass3 but not released anywhere in this class. |
1010| DeleteThis.cpp:60:3:60:24 | ... = ... | Resource ptr14 is acquired by class MyClass3 but not released anywhere in this class. |
11+ | DeleteThis.cpp:127:3:127:20 | ... = ... | Resource d is acquired by class MyClass9 but not released anywhere in this class. |
1112| ExternalOwners.cpp:49:3:49:20 | ... = ... | Resource a is acquired by class MyScreen but not released anywhere in this class. |
1213| ListDelete.cpp:21:3:21:21 | ... = ... | Resource first is acquired by class MyThingColection but not released anywhere in this class. |
1314| NoDestructor.cpp:23:3:23:20 | ... = ... | Resource n is acquired by class MyClass5 but not released anywhere in this class. |
Original file line number Diff line number Diff line change @@ -102,24 +102,47 @@ class MyClass6 : public MyClass5
102102{
103103};
104104
105- class MyClass7
105+ class MyClass7 : public MyClass4
106106{
107107public:
108- MyClass7 ()
108+ void Release ()
109+ {
110+ // do nothing
111+ }
112+ };
113+
114+ class MyClass8 : public MyClass7
115+ {
116+ };
117+
118+ class MyClass9
119+ {
120+ public:
121+ MyClass9 ()
109122 {
110123 a = new MyClass5 (); // GOOD
111124 b = new MyClass5 (); // GOOD
112125 c = new MyClass6 (); // GOOD
113- }
114126
115- ~MyClass7 ()
116- {
117- a->Release ();
118- b->Release ();
119- c->Release ();
127+ d = new MyClass7 (); // BAD
128+ e = new MyClass7 (); // BAD [NOT DETECTED]
129+ f = new MyClass8 (); // BAD [NOT DETECTED]
120130 }
131+ ~MyClass9 ()
132+ {
133+ a->Release (); // MyClass5::Release()
134+ b->Release (); // MyClass5::Release()
135+ c->Release (); // MyClass5::Release()
121136
122- MyClass5 *a;
137+ d->Release (); // MyClass7::Release()
138+ e->Release (); // MyClass7::Release()
139+ f->Release (); // MyClass7::Release()
140+ }
141+ MyClass5 *a;
123142 MyClass4 *b;
124143 MyClass4 *c;
144+
145+ MyClass7 *d;
146+ MyClass4 *e;
147+ MyClass4 *f;
125148};
You can’t perform that action at this time.
0 commit comments