Skip to content

Commit ee05fe6

Browse files
committed
GATTClass::end(): fix possible leak
1 parent e389eaf commit ee05fe6

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

Diff for: src/utility/GATT.cpp

+20-10
Original file line numberDiff line numberDiff line change
@@ -70,21 +70,31 @@ void GATTClass::begin()
7070

7171
void GATTClass::end()
7272
{
73-
if (_genericAccessService->release() == 0)
73+
if (_genericAccessService && _genericAccessService->release() == 0) {
7474
delete(_genericAccessService);
75-
76-
if (_deviceNameCharacteristic->release() == 0)
75+
_genericAccessService = NULL;
76+
}
77+
78+
if (_deviceNameCharacteristic && _deviceNameCharacteristic->release() == 0) {
7779
delete(_deviceNameCharacteristic);
78-
79-
if (_appearanceCharacteristic->release() == 0)
80+
_deviceNameCharacteristic = NULL;
81+
}
82+
83+
if (_appearanceCharacteristic && _appearanceCharacteristic->release() == 0) {
8084
delete(_appearanceCharacteristic);
81-
82-
if (_genericAttributeService->release() == 0)
85+
_appearanceCharacteristic = NULL;
86+
}
87+
88+
if (_genericAttributeService && _genericAttributeService->release() == 0) {
8389
delete(_genericAttributeService);
84-
85-
if (_servicesChangedCharacteristic->release() == 0)
90+
_genericAttributeService = NULL;
91+
}
92+
93+
if (_servicesChangedCharacteristic && _servicesChangedCharacteristic->release() == 0) {
8694
delete(_servicesChangedCharacteristic);
87-
95+
_servicesChangedCharacteristic = NULL;
96+
}
97+
8898
clearAttributes();
8999
}
90100

0 commit comments

Comments
 (0)