From: Max <msuraev(a)sysmocom.de>
The code in bitvec_*_field was incorrectly ported from C++.
This also affected bitvec_unhex which uses it.
---
src/bitvec.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/bitvec.c b/src/bitvec.c
index 7254674..407dfc8 100644
--- a/src/bitvec.c
+++ b/src/bitvec.c
@@ -389,6 +389,7 @@ int bitvec_unhex(struct bitvec *bv, const char *src)
return 1;
bitvec_write_field(bv, write_index, val, 4);
+ write_index += 4;
}
return 0;
}
@@ -407,7 +408,7 @@ uint64_t bitvec_read_field(struct bitvec *bv, unsigned int read_index,
unsigned
ui |= ((uint64_t)1 << (len - i - 1));
bv->cur_bit++;
}
- read_index += len;
+
return ui;
}
@@ -425,8 +426,8 @@ int bitvec_write_field(struct bitvec *bv, unsigned int write_index,
uint64_t val
if (rc)
return rc;
}
- write_index += len;
- return 0;
+
+ return write_index + len;
}
/*! @} */
--
2.5.0