Skip to content

Commit 3c94d73

Browse files
committed
Issue 10318: Don't skip event callbacks in NetworkEvents::removeEvent
1 parent cbe0f2f commit 3c94d73

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

libraries/Network/src/NetworkEvents.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ void NetworkEvents::removeEvent(NetworkEventCb cbEvent, arduino_event_id_t event
221221
NetworkEventCbList_t entry = cbEventList[i];
222222
if (entry.cb == cbEvent && entry.event == event) {
223223
cbEventList.erase(cbEventList.begin() + i);
224+
i--; // Don't skip over any entries in the list
224225
}
225226
}
226227
}
@@ -240,6 +241,7 @@ void NetworkEvents::removeEvent(NetworkEventFuncCb cbEvent, arduino_event_id_t e
240241
NetworkEventCbList_t entry = cbEventList[i];
241242
if (getStdFunctionAddress(entry.fcb) == getStdFunctionAddress(cbEvent) && entry.event == event) {
242243
cbEventList.erase(cbEventList.begin() + i);
244+
i--; // Don't skip over any entries in the list
243245
}
244246
}
245247
}
@@ -253,6 +255,7 @@ void NetworkEvents::removeEvent(NetworkEventSysCb cbEvent, arduino_event_id_t ev
253255
NetworkEventCbList_t entry = cbEventList[i];
254256
if (entry.scb == cbEvent && entry.event == event) {
255257
cbEventList.erase(cbEventList.begin() + i);
258+
i--; // Don't skip over any entries in the list
256259
}
257260
}
258261
}
@@ -262,6 +265,7 @@ void NetworkEvents::removeEvent(network_event_handle_t id) {
262265
NetworkEventCbList_t entry = cbEventList[i];
263266
if (entry.id == id) {
264267
cbEventList.erase(cbEventList.begin() + i);
268+
i--; // Don't skip over any entries in the list
265269
}
266270
}
267271
}

0 commit comments

Comments
 (0)