]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/hfs/hfs_link.c
xnu-1228.5.20.tar.gz
[apple/xnu.git] / bsd / hfs / hfs_link.c
index 65f5e9ee8567ca273d3ca7939ed79442ad613626..a2e08a098713c662ed7d0ecc9e928166f3d567d7 100644 (file)
@@ -1059,13 +1059,14 @@ __private_extern__
 void
 hfs_relorigin(struct cnode *cp, cnid_t parentcnid)
 {
-       linkorigin_t *origin = NULL;
+       linkorigin_t *origin, *prev;
        void * thread = current_thread();
 
-       TAILQ_FOREACH(origin, &cp->c_originlist, lo_link) {
+       TAILQ_FOREACH_SAFE(origin, &cp->c_originlist, lo_link, prev) {
                if ((origin->lo_thread == thread) ||
                    (origin->lo_parentcnid == parentcnid)) {
                        TAILQ_REMOVE(&cp->c_originlist, origin, lo_link);
+                       FREE(origin, M_TEMP);
                        break;
                }
        }