On Sun, May 16, 2010 at 11:40:38AM -0700, Steven Dake wrote: > good for merge
Committed. > > On Sun, 2010-05-16 at 18:40 +1000, Angus Salkeld wrote: > > Signed-off-by: Angus Salkeld <asalk...@redhat.com> > > --- > > exec/coroipcs.c | 29 +++++++++++++++++++++++++---- > > lib/coroipcc.c | 16 ++++++++++++++++ > > 2 files changed, 41 insertions(+), 4 deletions(-) > > > > diff --git a/exec/coroipcs.c b/exec/coroipcs.c > > index b2d780c..a2deb8a 100644 > > --- a/exec/coroipcs.c > > +++ b/exec/coroipcs.c > > @@ -263,13 +263,21 @@ memory_map ( > > > > unlink (path); > > > > - if (fd >= 0) { > > - res = ftruncate (fd, bytes); > > + if (fd == -1) { > > + return (-1); > > } > > + > > + res = ftruncate (fd, bytes); > > + if (res == -1) { > > + close (fd); > > + return (-1); > > + } > > + > > addr_orig = mmap (NULL, bytes, PROT_NONE, > > MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); > > > > if (addr_orig == MAP_FAILED) { > > + close (fd); > > return (-1); > > } > > > > @@ -277,6 +285,7 @@ memory_map ( > > MAP_FIXED | MAP_SHARED, fd, 0); > > > > if (addr != addr_orig) { > > + close (fd); > > return (-1); > > } > > #ifdef COROSYNC_BSD > > @@ -306,13 +315,20 @@ circular_memory_map ( > > > > unlink (path); > > > > - if (fd >= 0) { > > - res = ftruncate (fd, bytes); > > + if (fd == -1) { > > + return (-1); > > } > > + res = ftruncate (fd, bytes); > > + if (res == -1) { > > + close (fd); > > + return (-1); > > + } > > + > > addr_orig = mmap (NULL, bytes << 1, PROT_NONE, > > MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); > > > > if (addr_orig == MAP_FAILED) { > > + close (fd); > > return (-1); > > } > > > > @@ -320,6 +336,7 @@ circular_memory_map ( > > MAP_FIXED | MAP_SHARED, fd, 0); > > > > if (addr != addr_orig) { > > + close (fd); > > return (-1); > > } > > #ifdef COROSYNC_BSD > > @@ -329,6 +346,10 @@ circular_memory_map ( > > addr = mmap (((char *)addr_orig) + bytes, > > bytes, PROT_READ | PROT_WRITE, > > MAP_FIXED | MAP_SHARED, fd, 0); > > + if (addr == MAP_FAILED) { > > + close (fd); > > + return (-1); > > + } > > #ifdef COROSYNC_BSD > > madvise(((char *)addr_orig) + bytes, bytes, MADV_NOSYNC); > > #endif > > diff --git a/lib/coroipcc.c b/lib/coroipcc.c > > index c66d687..c453a7a 100644 > > --- a/lib/coroipcc.c > > +++ b/lib/coroipcc.c > > @@ -300,11 +300,16 @@ circular_memory_map (char *path, const char *file, > > void **buf, size_t bytes) > > } > > > > res = ftruncate (fd, bytes); > > + if (res == -1) { > > + close (fd); > > + return (-1); > > + } > > > > addr_orig = mmap (NULL, bytes << 1, PROT_NONE, > > MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); > > > > if (addr_orig == MAP_FAILED) { > > + close (fd); > > return (-1); > > } > > > > @@ -312,6 +317,7 @@ circular_memory_map (char *path, const char *file, void > > **buf, size_t bytes) > > MAP_FIXED | MAP_SHARED, fd, 0); > > > > if (addr != addr_orig) { > > + close (fd); > > return (-1); > > } > > #ifdef COROSYNC_BSD > > @@ -321,6 +327,10 @@ circular_memory_map (char *path, const char *file, > > void **buf, size_t bytes) > > addr = mmap (((char *)addr_orig) + bytes, > > bytes, PROT_READ | PROT_WRITE, > > MAP_FIXED | MAP_SHARED, fd, 0); > > + if (addr == MAP_FAILED) { > > + close (fd); > > + return (-1); > > + } > > #ifdef COROSYNC_BSD > > madvise(((char *)addr_orig) + bytes, bytes, MADV_NOSYNC); > > #endif > > @@ -372,11 +382,16 @@ memory_map (char *path, const char *file, void **buf, > > size_t bytes) > > } > > > > res = ftruncate (fd, bytes); > > + if (res == -1) { > > + close (fd); > > + return (-1); > > + } > > > > addr_orig = mmap (NULL, bytes, PROT_NONE, > > MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); > > > > if (addr_orig == MAP_FAILED) { > > + close (fd); > > return (-1); > > } > > > > @@ -384,6 +399,7 @@ memory_map (char *path, const char *file, void **buf, > > size_t bytes) > > MAP_FIXED | MAP_SHARED, fd, 0); > > > > if (addr != addr_orig) { > > + close (fd); > > return (-1); > > } > > #ifdef COROSYNC_BSD _______________________________________________ Openais mailing list Openais@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/openais