diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2004-03-29 01:01:33 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2004-03-29 01:01:33 +0400 |
commit | 83216c72ec4c9d0b55a39b59b20d0a2b504f1856 (patch) | |
tree | 71a7537d668e79fb66c2c06476bc7b06330966ff | |
parent | f241377ee17161d81cb128515a7a63ed43cae478 (diff) |
* shm.cc (shmat): Return (void *) -1 on error instead of NULL.
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/shm.cc | 12 |
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 } |