am 2cd3490d: Merge "Take ownership of various simple syscall wrappers."

* commit '2cd3490d7bdb18e5051a3cc66e7d03635bbcbeaf':
  Take ownership of various simple syscall wrappers.
This commit is contained in:
Elliott Hughes 2014-03-11 00:46:57 +00:00 committed by Android Git Automerger
commit 02bd494dee
8 changed files with 62 additions and 66 deletions

View File

@ -49,7 +49,6 @@ libc_common_src_files := \
bionic/fts.c \ bionic/fts.c \
bionic/getdtablesize.c \ bionic/getdtablesize.c \
bionic/gethostname.c \ bionic/gethostname.c \
bionic/getpgrp.c \
bionic/getpriority.c \ bionic/getpriority.c \
bionic/getpt.c \ bionic/getpt.c \
bionic/if_indextoname.c \ bionic/if_indextoname.c \
@ -64,12 +63,9 @@ libc_common_src_files := \
bionic/ptsname.c \ bionic/ptsname.c \
bionic/ptsname_r.c \ bionic/ptsname_r.c \
bionic/pututline.c \ bionic/pututline.c \
bionic/recv.c \
bionic/sched_cpualloc.c \ bionic/sched_cpualloc.c \
bionic/sched_cpucount.c \ bionic/sched_cpucount.c \
bionic/semaphore.c \ bionic/semaphore.c \
bionic/send.c \
bionic/setpgrp.c \
bionic/sigblock.c \ bionic/sigblock.c \
bionic/siginterrupt.c \ bionic/siginterrupt.c \
bionic/sigsetmask.c \ bionic/sigsetmask.c \
@ -80,7 +76,6 @@ libc_common_src_files := \
bionic/tcgetpgrp.c \ bionic/tcgetpgrp.c \
bionic/tcsetpgrp.c \ bionic/tcsetpgrp.c \
bionic/time64.c \ bionic/time64.c \
bionic/umount.c \
bionic/unlockpt.c \ bionic/unlockpt.c \
stdio/asprintf.c \ stdio/asprintf.c \
stdio/findfp.c \ stdio/findfp.c \
@ -145,6 +140,7 @@ libc_bionic_src_files := \
bionic/futimens.cpp \ bionic/futimens.cpp \
bionic/getauxval.cpp \ bionic/getauxval.cpp \
bionic/getcwd.cpp \ bionic/getcwd.cpp \
bionic/getpgrp.cpp \
bionic/inotify_init.cpp \ bionic/inotify_init.cpp \
bionic/lchown.cpp \ bionic/lchown.cpp \
bionic/lfs64_support.cpp \ bionic/lfs64_support.cpp \
@ -186,15 +182,18 @@ libc_bionic_src_files := \
bionic/raise.cpp \ bionic/raise.cpp \
bionic/readlink.cpp \ bionic/readlink.cpp \
bionic/reboot.cpp \ bionic/reboot.cpp \
bionic/recv.cpp \
bionic/rename.cpp \ bionic/rename.cpp \
bionic/rmdir.cpp \ bionic/rmdir.cpp \
bionic/sbrk.cpp \ bionic/sbrk.cpp \
bionic/scandir.cpp \ bionic/scandir.cpp \
bionic/sched_getaffinity.cpp \ bionic/sched_getaffinity.cpp \
bionic/sched_getcpu.cpp \ bionic/sched_getcpu.cpp \
bionic/send.cpp \
bionic/setegid.cpp \ bionic/setegid.cpp \
bionic/__set_errno.cpp \ bionic/__set_errno.cpp \
bionic/seteuid.cpp \ bionic/seteuid.cpp \
bionic/setpgrp.cpp \
bionic/setlocale.cpp \ bionic/setlocale.cpp \
bionic/sigaction.cpp \ bionic/sigaction.cpp \
bionic/sigaddset.cpp \ bionic/sigaddset.cpp \
@ -222,6 +221,7 @@ libc_bionic_src_files := \
bionic/tdestroy.cpp \ bionic/tdestroy.cpp \
bionic/thread_atexit.cpp \ bionic/thread_atexit.cpp \
bionic/tmpfile.cpp \ bionic/tmpfile.cpp \
bionic/umount.cpp \
bionic/unlink.cpp \ bionic/unlink.cpp \
bionic/utimes.cpp \ bionic/utimes.cpp \
bionic/wait.cpp \ bionic/wait.cpp \

View File

@ -25,9 +25,9 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#include <unistd.h> #include <unistd.h>
pid_t getpgrp(void) pid_t getpgrp() {
{
return getpgid(0); return getpgid(0);
} }

View File

@ -25,10 +25,9 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#include <stddef.h>
#include <sys/socket.h> #include <sys/socket.h>
ssize_t recv(int socket, void *buf, size_t buflen, unsigned int flags) ssize_t recv(int socket, void *buf, size_t len, int flags) {
{ return recvfrom(socket, buf, len, flags, NULL, 0);
return recvfrom(socket, buf, buflen, flags, NULL, 0);
} }

View File

@ -1,34 +0,0 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <stddef.h>
#include <sys/socket.h>
ssize_t send(int socket, const void *buf, size_t buflen, unsigned int flags)
{
return (ssize_t) sendto(socket, buf, buflen, flags, NULL, 0);
}

33
libc/bionic/send.cpp Normal file
View File

@ -0,0 +1,33 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/socket.h>
ssize_t send(int socket, const void* buf, size_t len, int flags) {
return sendto(socket, buf, len, flags, NULL, 0);
}

View File

@ -25,9 +25,9 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#include <unistd.h> #include <unistd.h>
int setpgrp(void) int setpgrp() {
{ return setpgid(0, 0);
return setpgid(0,0);
} }

View File

@ -25,11 +25,9 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#include <unistd.h>
extern int umount2(const char*, int); #include <sys/mount.h>
int umount(const char* dir) int umount(const char* target) {
{ return umount2(target, 0);
return umount2(dir, 0);
} }

View File

@ -295,37 +295,37 @@ __socketcall int getsockname(int, struct sockaddr*, socklen_t*);
__socketcall int getsockopt(int, int, int, void*, socklen_t*); __socketcall int getsockopt(int, int, int, void*, socklen_t*);
__socketcall int listen(int, int); __socketcall int listen(int, int);
__socketcall int recvmmsg(int, struct mmsghdr*, unsigned int, int, const struct timespec*); __socketcall int recvmmsg(int, struct mmsghdr*, unsigned int, int, const struct timespec*);
__socketcall int recvmsg(int, struct msghdr*, unsigned int); __socketcall int recvmsg(int, struct msghdr*, int);
__socketcall int sendmmsg(int, const struct mmsghdr*, unsigned int, int); __socketcall int sendmmsg(int, const struct mmsghdr*, unsigned int, int);
__socketcall int sendmsg(int, const struct msghdr*, unsigned int); __socketcall int sendmsg(int, const struct msghdr*, int);
__socketcall int setsockopt(int, int, int, const void*, socklen_t); __socketcall int setsockopt(int, int, int, const void*, socklen_t);
__socketcall int shutdown(int, int); __socketcall int shutdown(int, int);
__socketcall int socket(int, int, int); __socketcall int socket(int, int, int);
__socketcall int socketpair(int, int, int, int*); __socketcall int socketpair(int, int, int, int*);
extern ssize_t send(int, const void*, size_t, unsigned int); extern ssize_t send(int, const void*, size_t, int);
extern ssize_t recv(int, void*, size_t, unsigned int); extern ssize_t recv(int, void*, size_t, int);
__socketcall ssize_t sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t); __socketcall ssize_t sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t);
__socketcall ssize_t recvfrom(int, void*, size_t, unsigned int, const struct sockaddr*, socklen_t*); __socketcall ssize_t recvfrom(int, void*, size_t, int, const struct sockaddr*, socklen_t*);
#if defined(__BIONIC_FORTIFY) #if defined(__BIONIC_FORTIFY)
__errordecl(__recvfrom_error, "recvfrom called with size bigger than buffer"); __errordecl(__recvfrom_error, "recvfrom called with size bigger than buffer");
extern ssize_t __recvfrom_chk(int, void*, size_t, size_t, unsigned int, const struct sockaddr*, socklen_t*); extern ssize_t __recvfrom_chk(int, void*, size_t, size_t, int, const struct sockaddr*, socklen_t*);
extern ssize_t __recvfrom_real(int, void*, size_t, unsigned int, const struct sockaddr*, socklen_t*) extern ssize_t __recvfrom_real(int, void*, size_t, int, const struct sockaddr*, socklen_t*)
__asm__(__USER_LABEL_PREFIX__ "recvfrom"); __asm__(__USER_LABEL_PREFIX__ "recvfrom");
__BIONIC_FORTIFY_INLINE __BIONIC_FORTIFY_INLINE
ssize_t recvfrom(int fd, void* buf, size_t len, unsigned int flags, const struct sockaddr* src_addr, socklen_t* addrlen) { ssize_t recvfrom(int fd, void* buf, size_t len, int flags, const struct sockaddr* src_addr, socklen_t* addr_len) {
size_t bos = __bos0(buf); size_t bos = __bos0(buf);
#if !defined(__clang__) #if !defined(__clang__)
if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) { if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
return __recvfrom_real(fd, buf, len, flags, src_addr, addrlen); return __recvfrom_real(fd, buf, len, flags, src_addr, addr_len);
} }
if (__builtin_constant_p(len) && (len <= bos)) { if (__builtin_constant_p(len) && (len <= bos)) {
return __recvfrom_real(fd, buf, len, flags, src_addr, addrlen); return __recvfrom_real(fd, buf, len, flags, src_addr, addr_len);
} }
if (__builtin_constant_p(len) && (len > bos)) { if (__builtin_constant_p(len) && (len > bos)) {
@ -333,12 +333,12 @@ ssize_t recvfrom(int fd, void* buf, size_t len, unsigned int flags, const struct
} }
#endif #endif
return __recvfrom_chk(fd, buf, len, bos, flags, src_addr, addrlen); return __recvfrom_chk(fd, buf, len, bos, flags, src_addr, addr_len);
} }
__BIONIC_FORTIFY_INLINE __BIONIC_FORTIFY_INLINE
ssize_t recv(int socket, void* buf, size_t buflen, unsigned int flags) { ssize_t recv(int socket, void* buf, size_t len, int flags) {
return recvfrom(socket, buf, buflen, flags, NULL, 0); return recvfrom(socket, buf, len, flags, NULL, 0);
} }
#endif /* __BIONIC_FORTIFY */ #endif /* __BIONIC_FORTIFY */