From: Max <[email protected]>

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

Reply via email to