fix bug in bitvec resulting in all bits being set to 0xff
diff --git a/openbsc/src/bitvec.c b/openbsc/src/bitvec.c
index ad03958..d6f5679 100644
--- a/openbsc/src/bitvec.c
+++ b/openbsc/src/bitvec.c
@@ -104,12 +104,12 @@
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;