]> sourceware.org Git - newlib-cygwin.git/commitdiff
* flock.cc (delete_lock_in_parent): Use LIST_FOREACH_SAFE to avoid
authorCorinna Vinschen <corinna@vinschen.de>
Tue, 20 May 2014 14:54:06 +0000 (14:54 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Tue, 20 May 2014 14:54:06 +0000 (14:54 +0000)
dereferencing freed pointer (CID 60224).

winsup/cygwin/ChangeLog
winsup/cygwin/flock.cc

index e89b60d2119c5c47d75da2fcc8aab51ad376b3ae..d1253916dac98df00acac3a966edb6d746e4fc3d 100644 (file)
@@ -1,3 +1,8 @@
+2014-05-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * flock.cc (delete_lock_in_parent): Use LIST_FOREACH_SAFE to avoid
+       dereferencing freed pointer (CID 60224).
+
 2014-05-20  Corinna Vinschen  <corinna@vinschen.de>
 
        * fhandler_procsysvipc.cc (format_procsysvipc_msg): Rearrange code to
index 5ea3e067d34b4df2871560ef2b2e60c5fb52878f..4250aba3f2793a1a5aed17caaf16118886d0a79b 100644 (file)
@@ -1,6 +1,6 @@
 /* flock.cc.  NT specific implementation of advisory file locking.
 
-   Copyright 2003, 2008, 2009, 2010, 2011, 2012, 2013 Red Hat, Inc.
+   Copyright 2003, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
 
    This file is part of Cygwin.
 
@@ -724,13 +724,13 @@ err:
 DWORD WINAPI
 delete_lock_in_parent (PVOID param)
 {
-  inode_t *node;
+  inode_t *node, *next_node;
   lockf_t *lock, **prev;
 
   /* Scan list of all inodes, and reap stale BSD lock if lf_id matches.
      Remove inode if empty. */
   INODE_LIST_LOCK ();
-  LIST_FOREACH (node, &cygheap->inode_list, i_next)
+  LIST_FOREACH_SAFE (node, &cygheap->inode_list, i_next, next_node)
     if (!node->inuse ())
       {
        for (prev = &node->i_lockf, lock = *prev; lock; lock = *prev)
This page took 0.036105 seconds and 5 git commands to generate.