summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2004-03-28 21:01:33 +0000
committerCorinna Vinschen <corinna@vinschen.de>2004-03-28 21:01:33 +0000
commit83216c72ec4c9d0b55a39b59b20d0a2b504f1856 (patch)
tree71a7537d668e79fb66c2c06476bc7b06330966ff
parentf241377ee17161d81cb128515a7a63ed43cae478 (diff)
downloadcygnal-83216c72ec4c9d0b55a39b59b20d0a2b504f1856.tar.gz
cygnal-83216c72ec4c9d0b55a39b59b20d0a2b504f1856.tar.bz2
cygnal-83216c72ec4c9d0b55a39b59b20d0a2b504f1856.zip
* shm.cc (shmat): Return (void *) -1 on error instead of NULL.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/shm.cc12
2 files changed, 10 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 5da98a5fd..42e3577bf 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2004-03-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * shm.cc (shmat): Return (void *) -1 on error instead of NULL.
+
2004-03-27 Christopher Faylor <cgf@redhat.com>
* fhandler_nodevice.cc (fhandler_nodevice::open): Assume that errno has
diff --git a/winsup/cygwin/shm.cc b/winsup/cygwin/shm.cc
index 7e7245efa..7e4be9ebd 100644
--- a/winsup/cygwin/shm.cc
+++ b/winsup/cygwin/shm.cc
@@ -162,7 +162,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
{
/* Invalid shmid */
set_errno (EINVAL);
- return NULL;
+ return (void *) -1;
}
vm_object_t attach_va = NULL;
if (shmaddr)
@@ -176,7 +176,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
if (!attach_va || (vm_offset_t)attach_va % SHMLBA)
{
set_errno (EINVAL);
- return NULL;
+ return (void *) -1;
}
}
/* Try allocating memory before calling cygserver. */
@@ -184,7 +184,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
if (!sph_entry)
{
set_errno (ENOMEM);
- return NULL;
+ return (void *) -1;
}
DWORD access = (shmflg & SHM_RDONLY) ? FILE_MAP_READ : FILE_MAP_WRITE;
vm_object_t ptr = MapViewOfFileEx(ssh_entry->hdl, access, 0, 0,
@@ -193,7 +193,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
{
__seterrno ();
delete sph_entry;
- return NULL;
+ return (void *) -1;
}
/* Use returned ptr address as is, so it's stored using the exact value
in cygserver. */
@@ -206,7 +206,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
set_errno (request.error_code ());
if (request.error_code () == ENOSYS)
raise (SIGSYS);
- return NULL;
+ return (void *) -1;
}
sph_entry->ptr = ptr;
sph_entry->hdl = ssh_entry->hdl;
@@ -217,7 +217,7 @@ shmat (int shmid, const void *shmaddr, int shmflg)
#else
set_errno (ENOSYS);
raise (SIGSYS);
- return NULL;
+ return (void *) -1;
#endif
}