]> diplodocus.org Git - nmh/blobdiff - sbr/folder_free.c
Fix invalid pointer arithmetic.
[nmh] / sbr / folder_free.c
index 0b008194c94ab882cddd03b810d87431db24638f..7c6267f6af71abf4d952bc8faa8d9d5330764281 100644 (file)
@@ -7,18 +7,19 @@
 
 #include <h/mh.h>
 #include <h/utils.h>
+#include "lock_file.h"
 
 
 void
 folder_free (struct msgs *mp)
 {
     size_t i;
-    bvector_t *v;
+    struct bvector *v;
 
     if (!mp)
        return;
 
-    mh_xfree(mp->foldpath);
+    free(mp->foldpath);
 
     /* free the sequence names */
     for (i = 0; i < svector_size (mp->msgattrs); i++)
@@ -26,7 +27,7 @@ folder_free (struct msgs *mp)
     svector_free (mp->msgattrs);
 
     for (i = 0, v = mp->msgstats; i < mp->num_msgstats; ++i, ++v) {
-       bvector_free (*v);
+       bvector_fini(v);
     }
     free (mp->msgstats);
 
@@ -35,7 +36,7 @@ folder_free (struct msgs *mp)
     if (mp->seqhandle)
        lkfclosedata (mp->seqhandle, mp->seqname);
 
-    mh_xfree(mp->seqname);
+    free(mp->seqname);
 
     bvector_free (mp->attrstats);
     free (mp);                 /* free main folder structure */