diff options
author | David Barksdale <amatus.amongus@gmail.com> | 2010-10-31 01:46:15 +0000 |
---|---|---|
committer | David Barksdale <amatus.amongus@gmail.com> | 2010-10-31 01:46:15 +0000 |
commit | 54ec9da6272bb80fc9a2ec3bc9f6804fb4c76689 (patch) | |
tree | a1fb90cb335bdedfd14dfd7239247e981bc8ab69 | |
parent | bcb3c77b61fb9bff6d3c73414f8586c1e7163a3a (diff) | |
download | gnunet-54ec9da6272bb80fc9a2ec3bc9f6804fb4c76689.tar.gz gnunet-54ec9da6272bb80fc9a2ec3bc9f6804fb4c76689.zip |
Shifting more than the size of the integer is undefined.
-rw-r--r-- | src/core/gnunet-service-core.c | 6 |
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 | ||