aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Barksdale <amatus.amongus@gmail.com>2010-10-31 01:46:15 +0000
committerDavid Barksdale <amatus.amongus@gmail.com>2010-10-31 01:46:15 +0000
commit54ec9da6272bb80fc9a2ec3bc9f6804fb4c76689 (patch)
treea1fb90cb335bdedfd14dfd7239247e981bc8ab69
parentbcb3c77b61fb9bff6d3c73414f8586c1e7163a3a (diff)
downloadgnunet-54ec9da6272bb80fc9a2ec3bc9f6804fb4c76689.tar.gz
gnunet-54ec9da6272bb80fc9a2ec3bc9f6804fb4c76689.zip
Shifting more than the size of the integer is undefined.
-rw-r--r--src/core/gnunet-service-core.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c
index 4ff73395c..5e71ef897 100644
--- a/src/core/gnunet-service-core.c
+++ b/src/core/gnunet-service-core.c
@@ -3511,7 +3511,11 @@ handle_encrypted_message (struct Neighbour *n,
3511 } 3511 }
3512 if (n->last_sequence_number_received < snum) 3512 if (n->last_sequence_number_received < snum)
3513 { 3513 {
3514 n->last_packets_bitmap <<= (snum - n->last_sequence_number_received); 3514 int shift = (snum - n->last_sequence_number_received);
3515 if (shift >= 8 * sizeof(n->last_packets_bitmap))
3516 n->last_packets_bitmap = 0;
3517 else
3518 n->last_packets_bitmap <<= shift;
3515 n->last_sequence_number_received = snum; 3519 n->last_sequence_number_received = snum;
3516 } 3520 }
3517 3521