From 8e32a18e796dc9f8a0f92b720cf12aa1bf9dc5b5 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 31 Oct 2000 19:59:16 +0000 Subject: [PATCH] * fhandler_tape.cc (fhandler_dev_tape::open): Fix memory allocation. Use Cygwin heap instead of user heap. (fhandler_dev_tape::ioctl): Ditto. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/fhandler_tape.cc | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index cb2bc04fd..0a291e7a2 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +Tue Oct 31 20:56:00 2000 Corinna Vinschen + + * fhandler_tape.cc (fhandler_dev_tape::open): Fix memory allocation. + Use Cygwin heap instead of user heap. + (fhandler_dev_tape::ioctl): Ditto. + Tue Oct 31 12:00:06 2000 Christopher Faylor * pinfo.cc (enum_init): Don't suffer silently if we can't load the diff --git a/winsup/cygwin/fhandler_tape.cc b/winsup/cygwin/fhandler_tape.cc index 279c7fc37..1dd15e577 100644 --- a/winsup/cygwin/fhandler_tape.cc +++ b/winsup/cygwin/fhandler_tape.cc @@ -16,6 +16,7 @@ details. */ #include #include +#include "cygheap.h" #include "cygerrno.h" #include "fhandler.h" #include "path.h" @@ -88,7 +89,7 @@ fhandler_dev_tape::open (const char *path, int flags, mode_t) varblkop = get.mt_dsreg == 0; if (devbufsiz > 1L) - devbuf = new char [ devbufsiz ]; + devbuf = (char *) cmalloc (HEAP_BUF, devbufsiz); /* The following rewind in position 0 solves a problem which appears * in case of multi volume archives: The last ReadFile on first medium @@ -348,7 +349,7 @@ fhandler_dev_tape::ioctl (unsigned int cmd, void *buf) size = get.mt_maxblksize; ret = NO_ERROR; } - char *buf = new char [ size ]; + char *buf = (char *) cmalloc (HEAP_BUF, size); if (!buf) { ret = ERROR_OUTOFMEMORY; @@ -358,7 +359,7 @@ fhandler_dev_tape::ioctl (unsigned int cmd, void *buf) { memcpy(buf,devbuf + devbufstart, devbufend - devbufstart); devbufend -= devbufstart; - delete [] devbuf; + cfree (devbuf); } else devbufend = 0;