Fix missing va_end call in uip/mhmisc.c
[mmh] / sbr / lock_file.c
index b62604a..957bc4e 100644 (file)
 #include <lockfile.h>
 #endif
 
-#ifdef LOCKDIR
+#ifdef DOT_LOCKING
+# ifdef LOCKDIR
 char *lockdir = LOCKDIR;
+# endif
 #endif
 
 /* Are we using any kernel locking? */
@@ -514,11 +516,11 @@ timerON(char *curlock, int fd)
        struct lock *lp;
        size_t len;
 
-       lp = (struct lock *) mh_xmalloc(sizeof(*lp));
+       lp = mh_xcalloc(1, sizeof(*lp));
 
        len = strlen(curlock) + 1;
        lp->l_fd = fd;
-       lp->l_lock = mh_xmalloc(len);
+       lp->l_lock = mh_xcalloc(len, sizeof(char));
        memcpy(lp->l_lock, curlock, len);
        lp->l_next = l_top;
 
@@ -555,8 +557,8 @@ timerOFF(int fd)
                        else
                                pp->l_next = lp->l_next;
 
-                       free(lp->l_lock);
-                       free(lp);
+                       mh_free0(&(lp->l_lock));
+                       mh_free0(&lp);
                }
        }