1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

Fix for a signing bug when the mid wraps.

Found by Fran Fabrizio <fran@cis.uab.edu>.
Add to the *start* of the list not the end of the list.
This ensures that the *last* send sequence with this mid
is returned by preference.
This can happen if the mid wraps and one of the early
mid numbers didn't get a reply and is still lurking on
the list.
Jeremy.
(This used to be commit 25d739978f)
This commit is contained in:
Jeremy Allison 2004-01-17 00:30:35 +00:00
parent ad5817c3bf
commit bb1119acca

View File

@ -46,15 +46,23 @@ static void store_sequence_for_reply(struct outstanding_packet_lookup **list,
uint16 mid, uint32 reply_seq_num)
{
struct outstanding_packet_lookup *t;
struct outstanding_packet_lookup *tmp;
t = smb_xmalloc(sizeof(*t));
ZERO_STRUCTP(t);
DLIST_ADD_END(*list, t, tmp);
t->mid = mid;
t->reply_seq_num = reply_seq_num;
/*
* Add to the *start* of the list not the end of the list.
* This ensures that the *last* send sequence with this mid
* is returned by preference.
* This can happen if the mid wraps and one of the early
* mid numbers didn't get a reply and is still lurking on
* the list. JRA. Found by Fran Fabrizio <fran@cis.uab.edu>.
*/
DLIST_ADD(*list, t);
DEBUG(10,("store_sequence_for_reply: stored seq = %u mid = %u\n",
(unsigned int)reply_seq_num, (unsigned int)mid ));
}