Bugfix: copy the originator address from the packetbuf into a local variable to avoid it being overwritten
This commit is contained in:
parent
8430dab039
commit
f94d6df6f0
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: route-discovery.c,v 1.19 2009/11/08 19:40:17 adamdunkels Exp $
|
* $Id: route-discovery.c,v 1.20 2010/01/27 08:12:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -188,7 +188,13 @@ rrep_packet_received(struct unicast_conn *uc, const rimeaddr_t *from)
|
||||||
rrep_pending = 0;
|
rrep_pending = 0;
|
||||||
ctimer_stop(&c->t);
|
ctimer_stop(&c->t);
|
||||||
if(c->cb->new_route) {
|
if(c->cb->new_route) {
|
||||||
c->cb->new_route(c, &msg->originator);
|
rimeaddr_t originator;
|
||||||
|
|
||||||
|
/* If the callback modifies the packet, the originator address
|
||||||
|
will be lost. Therefore, we need to copy it into a local
|
||||||
|
variable before calling the callback. */
|
||||||
|
rimeaddr_copy(&originator, &msg->originator);
|
||||||
|
c->cb->new_route(c, &originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue