From 7b7302b096beb179da65cd5915707fa27ac36bd0 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 1 Sep 2009 12:12:45 +0000 Subject: Make shm_fd a local variable and close it when we need it no longer, thus fixing a file descriptor leak. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29609 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_corevideo.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libvo') diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index 73f29727e7..2e43679e98 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -57,7 +57,6 @@ NSAutoreleasePool *autoreleasepool; OSType pixelFormat; //shared memory -int shm_fd; BOOL shared_buffer = false; #define DEFAULT_BUFFER_NAME "mplayerosx" static char *buffer_name; @@ -173,6 +172,7 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_ } else { + int shm_fd; mp_msg(MSGT_VO, MSGL_INFO, "[vo_corevideo] writing output to a shared buffer " "named \"%s\"\n",buffer_name); @@ -190,12 +190,14 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_ { mp_msg(MSGT_VO, MSGL_FATAL, "[vo_corevideo] failed to size shared memory, possibly already in use. Error: %s\n", strerror(errno)); + close(shm_fd); shm_unlink(buffer_name); return 1; } image_data = mmap(NULL, image_width*image_height*image_bytes, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0); + close(shm_fd); if (image_data == MAP_FAILED) { -- cgit v1.2.3