#1 Long UIH packets on ARM

open
nobody
None
5
2001-02-27
2001-02-27
David LIBAULT
No

Long UIH packets are not received properly by the stack
when run on an ARM (after "manual" application of the
patch from Gordon).
We have checked that this commes from a bad alignement.
In rfcomm.c around line 1041 :

case UIH:

rfcomm = ((rfcomm_con*) l2cap->upper_con);

if ((short_pkt->h.length.ea) == 0) {
/* Then we cast the rfcomm packet to a long rfcomm
packet */
D_REC(FNC"Long UIH packet received\n");
long_pkt = (long_frame*) data;
swap_long_frame(long_pkt) ;

uih_len = long_pkt->h.length.bits.len;
uih_data_start = long_pkt->h.data;
D_REC(FNC"long packet length %d\n",
uih_len);

uih_data_start doesn't point to the proper value...

Discussion