raop_buffer.c: fix seqnum wraparound error reported by @kgbook

This commit is contained in:
F. Duncanh
2024-10-31 11:26:30 -04:00
parent 578968d87e
commit 87a580b45e
2 changed files with 5 additions and 6 deletions

View File

@@ -275,7 +275,7 @@ void raop_buffer_handle_resends(raop_buffer_t *raop_buffer, raop_resend_cb_t res
assert(resend_cb);
if (seqnum_cmp(raop_buffer->first_seqnum, raop_buffer->last_seqnum) < 0) {
int seqnum, count;
unsigned short seqnum, count = 0;
logger_log(raop_buffer->logger, LOGGER_DEBUG, "raop_buffer_handle_resends first_seqnum=%u last seqnum=%u",
raop_buffer->first_seqnum, raop_buffer->last_seqnum);
for (seqnum = raop_buffer->first_seqnum; seqnum_cmp(seqnum, raop_buffer->last_seqnum) < 0; seqnum++) {
@@ -283,12 +283,11 @@ void raop_buffer_handle_resends(raop_buffer_t *raop_buffer, raop_resend_cb_t res
if (entry->filled) {
break;
}
count++;
}
if (seqnum_cmp(seqnum, raop_buffer->first_seqnum) == 0) {
return;
if (count){
resend_cb(opaque, raop_buffer->first_seqnum, count);
}
count = seqnum_cmp(seqnum, raop_buffer->first_seqnum);
resend_cb(opaque, raop_buffer->first_seqnum, count);
}
}

View File

@@ -81,7 +81,7 @@ struct raop_rtp_mirror_s {
raop_callbacks_t callbacks;
raop_ntp_t *ntp;
/* Buffer to handle all resends */
/* mirror buffer for decryption */
mirror_buffer_t *buffer;
/* Remote address as sockaddr */