File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
cpp/ql/test/query-tests/jsf/4.10 Classes/AV Rule 79 Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 1717| Variants.cpp:65:3:65:17 | ... = ... | Resource a is acquired by class MyClass6 but not released anywhere in this class. |
1818| Variants.cpp:66:3:66:36 | ... = ... | Resource b is acquired by class MyClass6 but not released anywhere in this class. |
1919| Variants.cpp:67:3:67:41 | ... = ... | Resource c is acquired by class MyClass6 but not released anywhere in this class. |
20+ | Wrapped.cpp:46:3:46:22 | ... = ... | Resource ptr2 is acquired by class Wrapped2 but not released anywhere in this class. |
21+ | Wrapped.cpp:59:3:59:22 | ... = ... | Resource ptr4 is acquired by class Wrapped2 but not released anywhere in this class. |
Original file line number Diff line number Diff line change @@ -37,3 +37,34 @@ class Wrapped
3737private:
3838 char *ptr1, *ptr2, *ptr3;
3939};
40+
41+ class Wrapped2
42+ {
43+ public:
44+ Wrapped2 (int len) {
45+ ptr1 = new char [len]; // GOOD
46+ ptr2 = new char [len]; // BAD: not released in destructor
47+
48+ Init (len);
49+ }
50+
51+ ~Wrapped2 ()
52+ {
53+ Shutdown ();
54+ }
55+
56+ void Init (int len)
57+ {
58+ ptr3 = new char [len]; // GOOD
59+ ptr4 = new char [len]; // BAD: not released in destructor
60+ }
61+
62+ void Shutdown ()
63+ {
64+ delete [] ptr1;
65+ delete [] ptr3;
66+ }
67+
68+ private:
69+ char *ptr1, *ptr2, *ptr3, *ptr4;
70+ };
You can’t perform that action at this time.
0 commit comments