summaryrefslogtreecommitdiff
path: root/winsup/cygwin/shm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/shm.cc')
-rw-r--r--winsup/cygwin/shm.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/winsup/cygwin/shm.cc b/winsup/cygwin/shm.cc
index f4c6df54756..1813a23bab3 100644
--- a/winsup/cygwin/shm.cc
+++ b/winsup/cygwin/shm.cc
@@ -21,6 +21,7 @@ details. */
#include <unistd.h>
#include "cygerrno.h"
+#include "safe_memory.h"
#include "sigproc.h"
#include "cygserver_ipc.h"
@@ -145,7 +146,7 @@ client_shmmgr &
client_shmmgr::instance ()
{
if (!_instance)
- _instance = new client_shmmgr;
+ _instance = safe_new0 (client_shmmgr);
assert (_instance);
@@ -358,7 +359,7 @@ client_shmmgr::shmdt (const void *const shmaddr)
segptr->shmid, segptr->hFileMap,
strerror (request.error_code ()));
- delete segptr;
+ safe_delete (segment_t, segptr);
syscall_printf ("0 = shmdt (shmaddr = 0x%p)", shmaddr);
@@ -582,7 +583,8 @@ client_shmmgr::new_segment (const int shmid,
? (!previous->next || previous->next->shmaddr > shmaddr) \
: (!_segments_head || _segments_head->shmaddr > shmaddr));
- segment_t *const segptr = new segment_t (shmid, shmaddr, shmflg, hFileMap);
+ segment_t *const segptr =
+ safe_new (segment_t, shmid, shmaddr, shmflg, hFileMap);
assert (segptr);