platform_bionic/libc/bionic
Dimitry Ivanov cafd355375 Do not send 0 byte string content.
Trying to send even 0 bytes to closed socket leads to
broken pipe error. Sometimes property service is just
quick enough and closes the socket between send(valuelen)
and send(value) in the case where valuelen is 0.

Bug: http://b/34670529
Test: adb reboot 20 times and make sure phone service did not fail
Test: run bionic-unit-tests --gtest_filter=prop*
Change-Id: I96f90ca6fe1790614e7efd3015bffed1ef1e9040
2017-01-24 14:19:03 -08:00
..
__cmsg_nxthdr.cpp Move __cmsg_nxthdr to its proper file. 2014-07-10 12:47:13 +01:00
__cxa_guard.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
__cxa_pure_virtual.cpp Move libstdc++ into libc. 2014-05-14 18:18:55 -07:00
__cxa_thread_atexit_impl.cpp Defend against -fstack-protector in libc startup. 2016-01-06 20:06:08 -08:00
__errno.cpp
__gnu_basename.cpp Implement the GNU basename(3) in addition to the POSIX one. 2014-08-19 14:30:30 -07:00
__libc_current_sigrtmax.cpp Make SIGRTMIN hide the real-time signals we use internally. 2014-04-30 10:06:09 -07:00
__libc_current_sigrtmin.cpp Reserve a realtime signal for debuggerd. 2017-01-17 13:55:18 -08:00
__libc_init_main_thread.cpp Revert "Revert "Attempt to use arc4random where getauxval(AT_RANDOM) is used."" 2016-11-10 17:02:45 -08:00
__memcpy_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
__set_errno.cpp Move __set_errno to ndk_cruft.cpp. 2015-10-29 18:11:32 -07:00
__stack_chk_fail.cpp Make the __stack_chk_fail message more searchable on the internets. 2016-12-14 17:30:07 -08:00
__strcat_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
__strcpy_chk.cpp Improve FORTIFY failure diagnostics. 2016-02-26 22:06:17 -08:00
abort.cpp Add declaration of tgkill to signal.h. 2017-01-05 15:15:12 -08:00
accept.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
accept4.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
access.cpp
arpa_inet.cpp Fix inet_aton on LP32. 2015-10-09 17:36:05 -07:00
assert.cpp Rewrite and hide longjmperror. 2014-06-06 16:49:39 -07:00
atof.cpp Ensure we always have symbols for atof, strtof, strtold. 2014-03-12 16:12:57 -07:00
bionic_arc4random.cpp Add __libc_arc4random_unlimited_entropy. 2016-11-29 15:26:08 -08:00
bionic_netlink.cpp Fix ifaddrs error handling. 2016-10-14 14:35:26 -07:00
bionic_netlink.h Remove obsolete GCC workaround. 2016-06-10 12:49:04 -07:00
bionic_systrace.cpp Do not set properties in bionic_systrace 2015-12-10 13:33:37 -08:00
bionic_time_conversions.cpp Make it harder to use a broken legacy function by accident. 2016-04-04 16:15:37 -07:00
brk.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
c16rtomb.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
c32rtomb.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
chmod.cpp
chown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
clearenv.cpp Switch to the upstream OpenBSD getenv/putenv/setenv implementation. 2014-04-22 17:41:00 -07:00
clock.cpp Move <sys/sysconf.h> to <bits/sysconf.h>. 2016-04-07 18:02:00 -07:00
clock_getcpuclockid.cpp Minor clock_getcpuclockid optimization. 2016-03-07 11:54:02 -08:00
clock_nanosleep.cpp clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case 2016-03-28 10:29:16 -07:00
clone.cpp Set __get_thread()->tid as part of clone(). 2016-11-04 16:57:20 -04:00
close.cpp Simplify close(2) EINTR handling. 2015-04-23 08:41:45 -07:00
connect.cpp Cosmetic changes to netd client files. 2014-05-18 15:18:36 -07:00
ctype.cpp Remove isascii_l(3). 2014-07-14 15:48:02 -07:00
dirent.cpp Reorder DIR structure due to bad apps. 2015-06-04 14:04:16 -07:00
dl_iterate_phdr_static.cpp Fix signal trampolines. 2014-09-15 15:04:14 -07:00
dup2.cpp Fix dup2 in the case where the two fds are equal. 2015-02-23 21:52:56 -08:00
epoll_create.cpp epoll_create: reject size <= 0 2016-03-24 16:37:20 -07:00
epoll_pwait.cpp
epoll_wait.cpp
error.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
ether_aton.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
ether_ntoa.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
eventfd_read.cpp
eventfd_write.cpp
exec.cpp Fix execvp/execvpe behavior with absolute paths and ENOEXEC. 2016-08-25 17:40:27 -07:00
faccessat.cpp Fix "faccessat ignores flags" 2015-02-24 13:40:43 -08:00
fchmod.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
fchmodat.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
ffs.cpp
fgetxattr.cpp libc: Add O_PATH support for fgetxattr / fsetxattr 2015-06-01 15:51:56 -07:00
flistxattr.cpp Add O_PATH support for flistxattr() 2015-06-06 11:25:41 -07:00
flockfile.cpp Revert "Revert "Remove __sinit and __sdidinit."" 2015-12-05 07:30:59 -08:00
fork.cpp Set __get_thread()->tid as part of clone(). 2016-11-04 16:57:20 -04:00
fortify.cpp Fix recvfrom prototype. 2016-08-12 09:20:07 -07:00
fpclassify.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
fsetxattr.cpp libc: Add O_PATH support for fgetxattr / fsetxattr 2015-06-01 15:51:56 -07:00
ftruncate.cpp Cleanup ftruncate negative test. 2015-06-01 13:22:57 -07:00
fts.c Sync with upstream OpenBSD fts.c. 2014-11-21 19:27:28 -08:00
ftw.cpp Fix ftw/nftw to only report unreadable directories once. 2016-04-18 12:05:18 -07:00
futimens.cpp
getauxval.cpp set errno to ENOENT in getauxval per glibc 2.19 2015-03-17 19:50:55 -04:00
getcwd.cpp add a fortified implementation of getcwd 2015-08-01 00:42:30 -04:00
getdomainname.cpp Add {get,set}domainname(2) 2016-03-25 14:16:58 -07:00
getentropy_linux.c bionic: make NONBLOCK call to getrandom 2016-11-23 15:10:52 -08:00
gethostname.cpp gethostname.c: change to report ENAMETOOLONG error when buflen is less 2014-11-12 12:07:33 -08:00
getpagesize.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
getpgrp.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
getpid.cpp Make getpid work before the main thread is initialized. 2016-06-28 15:52:59 -07:00
getpriority.cpp Fix getpriority/setpriority types. 2016-11-29 15:14:11 -08:00
gettid.cpp Fix gettid() after clone(). 2016-10-28 12:14:23 -04:00
grp_pwd.cpp Merge "Revert "Revert "move android_ids into bionic""" 2017-01-10 01:15:30 +00:00
icu.cpp Use icu4c to implement <wctype.h>. 2016-11-29 19:19:30 +00:00
icu_static.cpp Use icu4c to implement <wctype.h>. 2016-11-29 19:19:30 +00:00
ifaddrs.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
initgroups.c
inotify_init.cpp
ioctl.cpp fix the mremap signature 2015-11-06 13:14:43 -08:00
isatty.c
jemalloc.h Export malloc_iterate and friends 2016-02-18 15:05:38 -08:00
jemalloc_wrapper.cpp Slim down static binaries by avoiding stdio. 2014-07-10 12:34:23 -07:00
langinfo.cpp Implement <langinfo.h>. 2016-11-19 11:46:54 -08:00
lchown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
legacy_32_bit_support.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
lfs64_support.cpp CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps. 2014-09-23 18:21:52 -07:00
libc_init_common.cpp Initialize __abort_message_ptr in linker's copy of libc 2016-08-26 17:03:01 -07:00
libc_init_common.h Move VDSO pointers to a shared globals struct. 2015-10-09 15:59:04 -07:00
libc_init_dynamic.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
libc_init_static.cpp Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
libc_logging.cpp Use STDERR_FILENO instead of opening /dev/stderr. 2016-10-07 13:21:03 -07:00
libgen.cpp Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC. 2015-10-23 12:32:52 -07:00
link.cpp
locale.cpp The default locale "" should be a UTF-8 locale. 2016-10-24 14:50:31 -07:00
lockf.cpp Fix lockf for LP32. 2016-01-26 14:32:55 -08:00
lstat.cpp Implement some of the missing LFS64 support. 2014-02-18 15:39:24 -08:00
malloc_common.cpp Enable malloc debug using environment variables 2016-11-17 13:13:27 -08:00
malloc_info.cpp Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
malloc_info.h Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
mblen.cpp Implement mblen(3). 2016-04-28 16:41:29 -07:00
mbrtoc16.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
mbrtoc32.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
mbstate.cpp Adds functionality specified by uchar.h 2014-06-04 08:39:24 -07:00
memmem.cpp Fix memmem behavior with empty needles. 2016-08-16 12:28:58 -07:00
mempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00
mkdir.cpp
mkfifo.cpp Add mkfifoat(3). 2014-10-23 19:10:54 -07:00
mknod.cpp
mmap.cpp mmap: fix calculation of is_private_anonymous variable 2015-11-20 09:16:59 -08:00
mntent.cpp Add hasmntopt(3) 2016-03-25 14:16:58 -07:00
mremap.cpp extend the PTRDIFF_MAX size check to mremap 2015-11-19 08:57:47 -05:00
ndk_cruft.cpp Move brillo closer to Android. 2016-08-10 14:08:31 -07:00
net_if.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
netdb.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
NetdClient.cpp RTLD_LAZY is not supported, use RTLD_NOW instead. 2015-03-23 14:58:45 -07:00
NetdClientDispatch.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
netinet_in.cpp POSIX says IPPORT_RESERVED is in <netdb.h>. 2016-08-12 10:38:35 -07:00
new.cpp Remove libstdc++ include files. 2016-05-27 15:49:31 -07:00
nl_types.cpp Add trivial no-op <nl_types.h>. 2016-04-06 17:22:44 -07:00
open.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
pathconf.cpp Clean up <sys/limits.h> a bit. 2016-11-30 09:06:53 -08:00
pause.cpp
pipe.cpp
poll.cpp Fix clang build. 2015-02-02 10:21:39 -08:00
posix_fadvise.cpp Add posix_fadvise(3). 2014-09-11 08:45:46 -07:00
posix_fallocate.cpp Add fallocate/fallocate64/posix_fallocate/posix_fallocate64. 2014-02-03 16:20:46 -08:00
posix_madvise.cpp implement posix_madvise 2014-12-04 11:01:28 -08:00
posix_timers.cpp Make all rt_sigtimedwait signatures match. 2016-05-23 11:20:19 -07:00
pthread_atfork.cpp Eliminate deadlock in forked child due to delayed resetting mutex lock 2016-11-07 03:32:57 +00:00
pthread_attr.cpp Fix the way to get main thread stack start address. 2015-09-16 11:45:13 -07:00
pthread_barrier.cpp Fix pthread_barrierattr_getpshared prototype. 2016-08-11 23:18:13 -07:00
pthread_cond.cpp Force pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC. 2016-07-13 16:08:48 -07:00
pthread_create.cpp Fix instances of '#if __i386__'. 2016-09-15 14:21:28 -07:00
pthread_detach.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_equal.cpp
pthread_exit.cpp If you're going to use memset... 2016-02-25 22:05:28 -08:00
pthread_getcpuclockid.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_getschedparam.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_gettid_np.cpp Remove "private/bionic_pthread.h". 2014-09-12 11:35:05 -07:00
pthread_internal.cpp Add check for pthread_self() when looking up a thread 2016-02-04 16:48:47 -08:00
pthread_internal.h Only initialize the global stack protector once. 2016-06-30 12:58:32 -07:00
pthread_join.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_key.cpp Prevent using static-allocated pthread keys before creation. 2015-04-14 13:32:09 -07:00
pthread_kill.cpp Add declaration of tgkill to signal.h. 2017-01-05 15:15:12 -08:00
pthread_mutex.cpp Use clang's nullability instead of nonnull. 2016-05-05 17:11:54 -07:00
pthread_once.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
pthread_rwlock.cpp sem_timedwait with a null timeout doesn't mean "forever". 2015-12-16 15:15:58 -08:00
pthread_self.cpp
pthread_setname_np.cpp Add pthread_getname_np. 2016-03-23 17:40:25 -07:00
pthread_setschedparam.cpp Let g_thread_list_lock only protect g_thread_list. 2015-03-23 19:03:49 -07:00
pthread_sigmask.cpp
pthread_spinlock.cpp Implement pthread spin. 2015-11-18 17:51:21 -08:00
ptrace.cpp ptrace(3) should be varargs. 2014-07-16 16:07:10 -07:00
pty.cpp forkpty: set the output fd to -1 on the slave side. 2016-03-04 18:04:41 -08:00
pututline.c libc should use O_CLOEXEC when opening files for its own use. 2014-08-26 15:56:54 -07:00
raise.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
rand.cpp Implement rand/srand in terms of random/srandom. 2014-07-14 12:02:22 -07:00
readlink.cpp add fortified readlink/readlinkat implementations 2015-04-17 18:49:12 -04:00
reboot.cpp Clean up various warnings in bionic. 2014-02-18 12:04:54 -08:00
recv.cpp Fix recv.cpp so it can build with clang. 2014-07-02 16:46:34 -07:00
rename.cpp
rmdir.cpp
scandir.cpp Implement scandirat and scandirat64. 2015-10-27 13:47:36 -07:00
sched_cpualloc.c
sched_cpucount.c Fix cpu_set_t 2014-04-30 14:30:15 +01:00
sched_getaffinity.cpp
sched_getcpu.cpp Clean up <sched.h>. 2014-01-02 12:05:50 -08:00
semaphore.cpp Add and use constants for the Android API levels. 2016-11-16 16:55:42 -08:00
send.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
setegid.cpp
seteuid.cpp
setjmp_cookie.cpp Revert "Revert "Attempt to use arc4random where getauxval(AT_RANDOM) is used."" 2016-11-10 17:02:45 -08:00
setpgrp.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
sigaction.cpp Use the kernel's sa_restorer for aarch64. 2014-09-16 15:49:50 -07:00
sigaddset.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
sigblock.c
sigdelset.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
sigemptyset.cpp Reduce <signal.h> namespace pollution. 2015-01-24 14:18:16 -08:00
sigfillset.cpp Reduce <signal.h> namespace pollution. 2015-01-24 14:18:16 -08:00
sighold.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigignore.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
siginterrupt.c
sigismember.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
signal.cpp Make _signal hidden in all cases. 2015-10-30 17:10:47 -07:00
signalfd.cpp Hide __signalfd4, used to implement signalfd(3). 2014-05-16 15:47:29 -07:00
sigpause.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigpending.cpp
sigprocmask.cpp
sigqueue.cpp Hide rt_sigqueueinfo. 2015-05-18 11:29:20 -07:00
sigrelse.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigset.cpp Add SysV signal handling 2016-04-04 16:33:29 -07:00
sigsetmask.c
sigsuspend.cpp
sigtimedwait.cpp support _POSIX_REALTIME_SIGNALS 2014-12-08 21:52:43 -08:00
sigwait.cpp Make all rt_sigtimedwait signatures match. 2016-05-23 11:20:19 -07:00
sigwaitinfo.cpp support _POSIX_REALTIME_SIGNALS 2014-12-08 21:52:43 -08:00
socket.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
stat.cpp Implement some of the missing LFS64 support. 2014-02-18 15:39:24 -08:00
statvfs.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
strchr.cpp More OpenBSD cleanup (primarily string). 2014-02-24 18:02:05 -08:00
strchrnul.cpp Add strchrnul. 2015-08-26 09:59:29 -07:00
strerror.cpp Make ThreadLocalBuffer a class rather than a macro. 2015-03-31 10:56:58 -07:00
strerror_r.cpp Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
strnlen.c
strrchr.cpp More OpenBSD cleanup (primarily string). 2014-02-24 18:02:05 -08:00
strsignal.cpp Make ThreadLocalBuffer a class rather than a macro. 2015-03-31 10:56:58 -07:00
strtold.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
symlink.cpp
sync_file_range.cpp Add sync_file_range to <fcntl.h>. 2016-04-05 12:17:22 -07:00
sys_msg.cpp [mips64] Fix ipc syscalls 2016-09-09 12:24:04 +02:00
sys_sem.cpp [mips64] Fix ipc syscalls 2016-09-09 12:24:04 +02:00
sys_shm.cpp [mips64] Fix ipc syscalls 2016-09-09 12:24:04 +02:00
sys_siglist.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_signame.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_time.cpp Add futimes, futimesat, and lutimes. 2016-06-08 19:51:20 -07:00
sysconf.cpp Fix sysconf(_SC_ARG_MAX). 2016-08-10 15:51:06 -07:00
sysinfo.cpp Use sysinfo(2) to implement more of <sys/sysinfo.h>. 2016-08-11 14:51:31 -07:00
syslog.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
system_properties.cpp Do not send 0 byte string content. 2017-01-24 14:19:03 -08:00
system_properties_compat.c Revert "Revert "Remove limit of system property name length"" 2017-01-24 12:58:18 -08:00
tdestroy.cpp Turn on -Wold-style-cast and fix the errors. 2015-01-21 17:09:58 -08:00
termios.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
thread_private.cpp Sync to current upstream arc4random. 2014-06-24 14:13:48 -07:00
time64.c Use snprintf instead of sprintf. 2014-10-07 11:28:47 -07:00
time64_config.h
tmpfile.cpp Add fopen64/freopen64/tmpfile64 aliases. 2016-02-03 11:24:28 -08:00
umount.cpp Take ownership of various simple syscall wrappers. 2014-03-10 17:17:01 -07:00
unlink.cpp
vdso.cpp Support 32-bit ARM vdso. 2016-07-12 13:55:51 -07:00
wait.cpp Removes wait3(2) from LP64. 2014-06-13 16:04:41 -07:00
wchar.cpp The default locale "" should be a UTF-8 locale. 2016-10-24 14:50:31 -07:00
wcstod.cpp Fix wcsto* where strings begin with whitespace. 2016-12-02 13:03:30 -08:00
wctype.cpp Fix icu4c calling on x86. 2016-12-08 15:16:37 -08:00
wmempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00