commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r4346 - gnuradio/trunk/gnuradio-core/src/lib/runtime


From: gdt
Subject: [Commit-gnuradio] r4346 - gnuradio/trunk/gnuradio-core/src/lib/runtime
Date: Wed, 31 Jan 2007 11:10:53 -0700 (MST)

Author: gdt
Date: 2007-01-31 11:10:53 -0700 (Wed, 31 Jan 2007)
New Revision: 4346

Modified:
   gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_sysv_shm.cc
Log:
free schmid_guard on error paths where it has been allocated and not
freed.  Fixes shm leak on NetBSD which hits the error case for unknown
reasons.


Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_sysv_shm.cc
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_sysv_shm.cc       
2007-01-31 01:59:14 UTC (rev 4345)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_sysv_shm.cc       
2007-01-31 18:10:53 UTC (rev 4346)
@@ -68,11 +68,13 @@
 
   if ((shmid2 = shmget (IPC_PRIVATE, 2 * size + 2 * pagesize, IPC_CREAT | 
0700)) == -1){
     perror ("gr_vmcircbuf_sysv_shm: shmget (1)");
+    shmctl (shmid_guard, IPC_RMID, 0);
     throw std::runtime_error ("gr_vmcircbuf_sysv_shm");
   }
 
   if ((shmid1 = shmget (IPC_PRIVATE, size, IPC_CREAT | 0700)) == -1){
     perror ("gr_vmcircbuf_sysv_shm: shmget (2)");
+    shmctl (shmid_guard, IPC_RMID, 0);
     shmctl (shmid2, IPC_RMID, 0);
     throw std::runtime_error ("gr_vmcircbuf_sysv_shm");
   }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]