Merge "Take ownership of various simple syscall wrappers."
This commit is contained in:
commit
2cd3490d7b
@ -49,7 +49,6 @@ libc_common_src_files := \
|
||||
bionic/fts.c \
|
||||
bionic/getdtablesize.c \
|
||||
bionic/gethostname.c \
|
||||
bionic/getpgrp.c \
|
||||
bionic/getpriority.c \
|
||||
bionic/getpt.c \
|
||||
bionic/if_indextoname.c \
|
||||
@ -64,12 +63,9 @@ libc_common_src_files := \
|
||||
bionic/ptsname.c \
|
||||
bionic/ptsname_r.c \
|
||||
bionic/pututline.c \
|
||||
bionic/recv.c \
|
||||
bionic/sched_cpualloc.c \
|
||||
bionic/sched_cpucount.c \
|
||||
bionic/semaphore.c \
|
||||
bionic/send.c \
|
||||
bionic/setpgrp.c \
|
||||
bionic/sigblock.c \
|
||||
bionic/siginterrupt.c \
|
||||
bionic/sigsetmask.c \
|
||||
@ -80,7 +76,6 @@ libc_common_src_files := \
|
||||
bionic/tcgetpgrp.c \
|
||||
bionic/tcsetpgrp.c \
|
||||
bionic/time64.c \
|
||||
bionic/umount.c \
|
||||
bionic/unlockpt.c \
|
||||
stdio/asprintf.c \
|
||||
stdio/findfp.c \
|
||||
@ -145,6 +140,7 @@ libc_bionic_src_files := \
|
||||
bionic/futimens.cpp \
|
||||
bionic/getauxval.cpp \
|
||||
bionic/getcwd.cpp \
|
||||
bionic/getpgrp.cpp \
|
||||
bionic/inotify_init.cpp \
|
||||
bionic/lchown.cpp \
|
||||
bionic/lfs64_support.cpp \
|
||||
@ -186,15 +182,18 @@ libc_bionic_src_files := \
|
||||
bionic/raise.cpp \
|
||||
bionic/readlink.cpp \
|
||||
bionic/reboot.cpp \
|
||||
bionic/recv.cpp \
|
||||
bionic/rename.cpp \
|
||||
bionic/rmdir.cpp \
|
||||
bionic/sbrk.cpp \
|
||||
bionic/scandir.cpp \
|
||||
bionic/sched_getaffinity.cpp \
|
||||
bionic/sched_getcpu.cpp \
|
||||
bionic/send.cpp \
|
||||
bionic/setegid.cpp \
|
||||
bionic/__set_errno.cpp \
|
||||
bionic/seteuid.cpp \
|
||||
bionic/setpgrp.cpp \
|
||||
bionic/setlocale.cpp \
|
||||
bionic/sigaction.cpp \
|
||||
bionic/sigaddset.cpp \
|
||||
@ -222,6 +221,7 @@ libc_bionic_src_files := \
|
||||
bionic/tdestroy.cpp \
|
||||
bionic/thread_atexit.cpp \
|
||||
bionic/tmpfile.cpp \
|
||||
bionic/umount.cpp \
|
||||
bionic/unlink.cpp \
|
||||
bionic/utimes.cpp \
|
||||
bionic/wait.cpp \
|
||||
|
@ -25,9 +25,9 @@
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
pid_t getpgrp(void)
|
||||
{
|
||||
pid_t getpgrp() {
|
||||
return getpgid(0);
|
||||
}
|
@ -25,10 +25,9 @@
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
#include <stddef.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
|
||||
ssize_t recv(int socket, void *buf, size_t buflen, unsigned int flags)
|
||||
{
|
||||
return recvfrom(socket, buf, buflen, flags, NULL, 0);
|
||||
ssize_t recv(int socket, void *buf, size_t len, int flags) {
|
||||
return recvfrom(socket, buf, len, flags, NULL, 0);
|
||||
}
|
@ -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
33
libc/bionic/send.cpp
Normal 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);
|
||||
}
|
@ -25,9 +25,9 @@
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
int setpgrp(void)
|
||||
{
|
||||
return setpgid(0,0);
|
||||
int setpgrp() {
|
||||
return setpgid(0, 0);
|
||||
}
|
@ -25,11 +25,9 @@
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
#include <unistd.h>
|
||||
|
||||
extern int umount2(const char*, int);
|
||||
#include <sys/mount.h>
|
||||
|
||||
int umount(const char* dir)
|
||||
{
|
||||
return umount2(dir, 0);
|
||||
int umount(const char* target) {
|
||||
return umount2(target, 0);
|
||||
}
|
@ -295,37 +295,37 @@ __socketcall int getsockname(int, struct sockaddr*, socklen_t*);
|
||||
__socketcall int getsockopt(int, int, int, void*, socklen_t*);
|
||||
__socketcall int listen(int, int);
|
||||
__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 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 shutdown(int, int);
|
||||
__socketcall int socket(int, int, int);
|
||||
__socketcall int socketpair(int, int, int, int*);
|
||||
|
||||
extern ssize_t send(int, const void*, size_t, unsigned int);
|
||||
extern ssize_t recv(int, void*, size_t, unsigned int);
|
||||
extern ssize_t send(int, const void*, size_t, 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 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)
|
||||
__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_real(int, void*, 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, int, const struct sockaddr*, socklen_t*)
|
||||
__asm__(__USER_LABEL_PREFIX__ "recvfrom");
|
||||
|
||||
__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);
|
||||
|
||||
#if !defined(__clang__)
|
||||
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)) {
|
||||
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)) {
|
||||
@ -333,12 +333,12 @@ ssize_t recvfrom(int fd, void* buf, size_t len, unsigned int flags, const struct
|
||||
}
|
||||
#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
|
||||
ssize_t recv(int socket, void* buf, size_t buflen, unsigned int flags) {
|
||||
return recvfrom(socket, buf, buflen, flags, NULL, 0);
|
||||
ssize_t recv(int socket, void* buf, size_t len, int flags) {
|
||||
return recvfrom(socket, buf, len, flags, NULL, 0);
|
||||
}
|
||||
|
||||
#endif /* __BIONIC_FORTIFY */
|
||||
|
Loading…
Reference in New Issue
Block a user