Module: xenomai-forge Branch: master Commit: 03879cd0925140156a461b7721746629b5212c96 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=03879cd0925140156a461b7721746629b5212c96
Author: Philippe Gerum <r...@xenomai.org> Date: Wed Nov 16 17:56:47 2011 +0100 copperplate/heapobj: fix locking in pshared_extend() --- lib/copperplate/heapobj-pshared.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/copperplate/heapobj-pshared.c b/lib/copperplate/heapobj-pshared.c index 8feae81..06ff7d5 100644 --- a/lib/copperplate/heapobj-pshared.c +++ b/lib/copperplate/heapobj-pshared.c @@ -682,19 +682,21 @@ static int pshared_extend(struct heapobj *hobj, size_t size, void *mem) if (size <= HOBJ_PAGE_SIZE * 2) return __bt(-EINVAL); + write_lock_safe(&heap->lock, state); newsize = size + hobj->size + sizeof(*heap) + sizeof(*extent); ret = __STD(ftruncate(hobj->fd, newsize)); - if (ret) - return __bt(-errno); + if (ret) { + ret = __bt(-errno); + goto out; + } /* * We do not allow the kernel to move the mapping address, so * it is safe referring to the heap contents while extending * it. */ - write_lock_safe(&heap->lock, state); p = mremap(heap, hobj->size + sizeof(*heap), newsize, 0); if (p == MAP_FAILED) { - ret = -errno; + ret = __bt(-errno); goto out; } _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git