aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-16 15:59:24 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-16 15:59:24 +0100
commit680e2eccef2bffb462e5854db87139126fb1920d (patch)
tree8cfbb408621df333c56c51911bb6122d4249c220 /openbsc
parent152b6261f88ac085cd96b63374ad5847ac7b3ce2 (diff)
fix bug in bitvec resulting in all bits being set to 0xff
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/bitvec.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/openbsc/src/bitvec.c b/openbsc/src/bitvec.c
index ad03958f3..d6f5679cf 100644
--- a/openbsc/src/bitvec.c
+++ b/openbsc/src/bitvec.c
@@ -104,12 +104,12 @@ int bitvec_set_bit_pos(struct bitvec *bv, unsigned int bitnr,
if (bytenum >= bv->data_len)
return -EINVAL;
- bitval = bitval2mask(ONE, bitnum);
-
/* first clear the bit */
- bv->data[bytenum] &= ~(1 << bitnum);
+ bitval = bitval2mask(ONE, bitnum);
+ bv->data[bytenum] &= ~bitval;
/* then set it to desired value */
+ bitval = bitval2mask(bit, bitnum);
bv->data[bytenum] |= bitval;
return 0;