]> diplodocus.org Git - nmh/blobdiff - sbr/vector.c
Fix invalid pointer arithmetic.
[nmh] / sbr / vector.c
index 7df361870f710809f566fa5c4bb5dc66f07bae2a..6afe62aa29e2aecc1ad446c59ed175b81201476a 100644 (file)
@@ -79,7 +79,10 @@ bvector_copy (bvector_t dest, bvector_t src) {
 
     if (dest->bits != dest->tiny)
         free(dest->bits);
-    dest->bits = mh_xmalloc (bytes);
+    if (bytes <= sizeof dest->tiny)
+        dest->bits = dest->tiny;
+    else
+        dest->bits = mh_xmalloc (bytes);
     memcpy (dest->bits, src->bits, bytes);
     dest->maxsize = src->maxsize;
 }