Lines Matching refs:OSObject
9 struct OSIterator : public OSObject {
13 struct OSArray : public OSObject {
18 OSObject *identity() override;
20 virtual OSObject *generateObject(OSObject *input);
51 OSObject *identity() override;
53 OSObject *generateObject(OSObject *input) override;
65 static void consumedMismatch(OS_CONSUME OSObject *a, in consumedMismatch()
66 OSObject *b) { // expected-note{{Parameter 'b' starts at +0}} in consumedMismatch()
82 bool write_into_out_param_on_success(OS_RETURNS_RETAINED OSObject **obj);
85 OSObject *obj; in use_out_param()
92 OSObject *obj; in use_out_param_leak()
97 bool write_into_out_param_on_failure(OS_RETURNS_RETAINED_ON_ZERO OSObject **obj);
100 OSObject *obj; in use_out_param_leak2()
106 OSObject *obj; in use_out_param_on_failure()
112 IOReturn write_into_out_param_on_nonzero(OS_RETURNS_RETAINED_ON_NONZERO OSObject **obj);
115 OSObject *obj; in use_out_param_on_nonzero()
121 bool write_into_two_out_params(OS_RETURNS_RETAINED OSObject **a,
122 OS_RETURNS_RETAINED OSObject **b);
125 OSObject *obj1; in use_write_into_two_out_params()
126 OSObject *obj2; in use_write_into_two_out_params()
134 OSObject *obj1; in use_write_two_out_params_leak()
135 OSObject *obj2; in use_write_two_out_params_leak()
143 void always_write_into_two_out_params(OS_RETURNS_RETAINED OSObject **a,
144 OS_RETURNS_RETAINED OSObject **b);
147 OSObject *obj1; in use_always_write_into_two_out_params()
148 OSObject *obj2; in use_always_write_into_two_out_params()
155 OSObject *obj1; in use_always_write_into_two_out_params_leak()
156 OSObject *obj2; in use_always_write_into_two_out_params_leak()
164 char *write_into_out_param_on_nonnull(OS_RETURNS_RETAINED OSObject **obj);
167 OSObject *obj; in use_out_param_osreturn_on_nonnull()
174 OSObject *obj; in use_out_param_leak_osreturn_on_nonnull()
179 bool write_optional_out_param(OS_RETURNS_RETAINED OSObject **obj=nullptr);
185 OSReturn write_into_out_param_on_os_success(OS_RETURNS_RETAINED OSObject **obj);
187 void write_into_non_retained_out_param(OS_RETURNS_NOT_RETAINED OSObject **obj);
190 OSObject *obj; in use_write_into_non_retained_out_param()
195 OSObject *obj; in use_write_into_non_retained_out_param_uaf()
201 void always_write_into_out_param(OS_RETURNS_RETAINED OSObject **obj);
203 void pass_through_out_param(OSObject **obj) { in pass_through_out_param()
207 void always_write_into_out_param_has_source(OS_RETURNS_RETAINED OSObject **obj) { in always_write_into_out_param_has_source()
208 …*obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObject' with … in always_write_into_out_param_has_source()
212 OSObject *obj; in use_always_write_into_out_param_has_source_leak()
219 OSObject *obj; in use_void_out_param_osreturn()
225 OSObject *obj; in use_void_out_param_osreturn_leak()
231 OSObject *obj; in use_out_param_osreturn()
238 OSObject *obj; in use_out_param_leak_osreturn()
243 void cleanup(OSObject **obj);
246 __attribute__((cleanup(cleanup))) OSObject *obj; in test_cleanup_escaping()
251 OSObject *obj;
259 bool os_consume_violation_two_args(OS_CONSUME OSObject *obj, bool extra) { in os_consume_violation_two_args()
268 bool os_consume_violation(OS_CONSUME OSObject *obj) { in os_consume_violation()
277 void os_consume_ok(OS_CONSUME OSObject *obj) { in os_consume_ok()
282 …OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObje… in use_os_consume_violation()
289 …OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObje… in use_os_consume_violation_two_args()
296 OSObject *obj = new OSObject; in use_os_consume_ok()
301 OSObject *obj = new OSObject; in test_escaping_into_voidstar()
306 OSObject *obj = new OSObject; in test_escape_has_source()
313 OSObject *input = new OSObject; in test_no_infinite_check_recursion()
314 OSObject *o = arr->generateObject(input); in test_no_infinite_check_recursion()
326 OSObject *other = arr->identity(); in check_attribute_propagation()
334 OSObject *other = arr->identity(); in check_attribute_indirect_propagation()
380 OSObject::getObject(); in check_get_object()
384 OSObject::GetObject(); in check_Get_object()
409 struct ArrayOwner : public OSObject {
484 OSArray *arr = OSDynamicCast(OSArray, OSObject::generateObject(1)); in check_dynamic_cast()
489 OSArray *arr = OSRequiredCast(OSArray, OSObject::generateObject(1)); in check_required_cast()
493 void check_cast_behavior(OSObject *obj) { in check_cast_behavior()
505 unsigned int check_dynamic_cast_no_null_on_orig(OSObject *obj) { in check_dynamic_cast_no_null_on_orig()
517 void check_dynamic_cast_null_branch(OSObject *obj) { in check_dynamic_cast_null_branch()
528 …OSArray *arr = OSDynamicCast(OSArray, OSObject::generateObject(1)); // expected-note{{Call to meth… in check_dynamic_cast_null_check()
538 …OSObject *originalPtr = OSObject::generateObject(1); // expected-note {{Call to method 'OSObject… in check_dynamic_cast_alias()
542 originalPtr = OSObject::generateObject(42); in check_dynamic_cast_alias()
550 …OSObject *originalPtr = OSObject::generateObject(1); // expected-note {{Call to method 'OSObject::… in check_dynamic_cast_alias_cond()
555 originalPtr = OSObject::generateObject(42); in check_dynamic_cast_alias_cond()
563 …OSObject *originalPtr = OSObject::generateObject(1); // expected-note {{Call to method 'OSObject::… in check_dynamic_cast_alias_intermediate()
564 OSObject *intermediate = originalPtr; // TODO: add note here as well in check_dynamic_cast_alias_intermediate()
569 intermediate = OSObject::generateObject(42); in check_dynamic_cast_alias_intermediate()
577 …OSObject *originalPtr = OSObject::generateObject(1); // expected-note {{Call to method 'OSObject::… in check_dynamic_cast_alias_intermediate_2()
578 OSObject *intermediate = originalPtr; // TODO: add note here as well in check_dynamic_cast_alias_intermediate_2()
583 intermediate = OSObject::generateObject(42); in check_dynamic_cast_alias_intermediate_2()
662 OSObject *getObject();
663 typedef bool (^Blk)(OSObject *);
669 using OSObjectPtr = os::smart_ptr<OSObject>;
672 …OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObje… in test_smart_ptr_uaf()
694 …OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObje… in test_smart_ptr_leak()
715 OSObject *obj = new OSObject; in test_smart_ptr_no_leak()
732 OSObject *getRuleViolation() { in getRuleViolation()
733 return new OSObject; // expected-warning{{Potential leak of an object of type 'OSObject'}} in getRuleViolation()
738 OSObject *createRuleViolation(OSObject *param) { // expected-note{{Parameter 'param' starts at +0}} in createRuleViolation()
750 void escape_elsewhere(OSObject *obj);
753 …OSObject *obj = new OSObject; // expected-note{{Operator 'new' returns an OSObject of type 'OSObje… in test_free_on_escaped_object_diagnostics()
760 OSObject *obj = new OSObject; in test_tagged_retain_no_leak()
765 OSObject *obj = new OSObject; in test_tagged_retain_no_uaf()
773 OSObject *somethingMatching(OSObject *table = 0);
776 OSObject *testSuppressionForMethodsEndingWithMatching(IOService *svc, in testSuppressionForMethodsEndingWithMatching()
777 OSObject *table = 0) { in testSuppressionForMethodsEndingWithMatching()
780 OSObject *ptr1 = svc->somethingMatching(table); // no-warning in testSuppressionForMethodsEndingWithMatching()
784 OSObject *ptr2 = svc->somethingMatching(); // no-warning in testSuppressionForMethodsEndingWithMatching()
799 WeirdResult outParamWithWeirdResult(OS_RETURNS_RETAINED_ON_ZERO OSObject **obj);
802 OSObject *obj; in testOutParamWithWeirdResult()