fortify(socket/stat): emit diagnostics regardless of API level

Bug: 141267932
Test: m checkbuild on internal-master

Change-Id: I7fe29184290e19ec080b204aa98d513ce59bc66b
diff --git a/libc/include/bits/fortify/socket.h b/libc/include/bits/fortify/socket.h
index 35fad3d..cf5f189 100644
--- a/libc/include/bits/fortify/socket.h
+++ b/libc/include/bits/fortify/socket.h
@@ -37,35 +37,35 @@
 
 #if defined(__BIONIC_FORTIFY)
 
-#if __ANDROID_API__ >= __ANDROID_API_N__
 __BIONIC_FORTIFY_INLINE
 ssize_t recvfrom(int fd, void* const buf __pass_object_size0, size_t len, int flags, struct sockaddr* src_addr, socklen_t* addr_len)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos0(buf), len),
                      "'recvfrom' called with size bigger than buffer") {
+#if __ANDROID_API__ >= __ANDROID_API_N__
   size_t bos = __bos0(buf);
 
-  if (__bos_trivially_not_lt(bos, len)) {
-    return __call_bypassing_fortify(recvfrom)(fd, buf, len, flags, src_addr, addr_len);
+  if (!__bos_trivially_ge(bos, len)) {
+    return __recvfrom_chk(fd, buf, len, bos, flags, src_addr, addr_len);
   }
-  return __recvfrom_chk(fd, buf, len, bos, flags, src_addr, addr_len);
-}
 #endif /* __ANDROID_API__ >= __ANDROID_API_N__ */
+  return __call_bypassing_fortify(recvfrom)(fd, buf, len, flags, src_addr, addr_len);
+}
 
-#if __ANDROID_API__ >= __ANDROID_API_N_MR1__
 __BIONIC_FORTIFY_INLINE
 ssize_t sendto(int fd, const void* const buf __pass_object_size0, size_t len, int flags, const struct sockaddr* dest_addr, socklen_t addr_len)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos0(buf), len),
                      "'sendto' called with size bigger than buffer") {
+#if __ANDROID_API__ >= __ANDROID_API_N_MR1__
   size_t bos = __bos0(buf);
 
-  if (__bos_trivially_not_lt(bos, len)) {
-    return __call_bypassing_fortify(sendto)(fd, buf, len, flags, dest_addr, addr_len);
+  if (!__bos_trivially_ge(bos, len)) {
+    return __sendto_chk(fd, buf, len, bos, flags, dest_addr, addr_len);
   }
-  return __sendto_chk(fd, buf, len, bos, flags, dest_addr, addr_len);
-}
 #endif /* __ANDROID_API__ >= __ANDROID_API_N_MR1__ */
+  return __call_bypassing_fortify(sendto)(fd, buf, len, flags, dest_addr, addr_len);
+}
 
 __BIONIC_FORTIFY_INLINE
 ssize_t recv(int socket, void* const buf __pass_object_size0, size_t len, int flags)
diff --git a/libc/include/bits/fortify/stat.h b/libc/include/bits/fortify/stat.h
index 30c8362..6a2e822 100644
--- a/libc/include/bits/fortify/stat.h
+++ b/libc/include/bits/fortify/stat.h
@@ -31,18 +31,21 @@
 #endif
 
 mode_t __umask_chk(mode_t) __INTRODUCED_IN(18);
+mode_t __umask_real(mode_t mode) __RENAME(umask);
 
 #if defined(__BIONIC_FORTIFY)
 
-#if __ANDROID_API__ >= __ANDROID_API_J_MR2__
 /* Abuse enable_if to make this an overload of umask. */
 __BIONIC_FORTIFY_INLINE
 mode_t umask(mode_t mode)
     __overloadable
     __enable_if(1, "")
     __clang_error_if(mode & ~0777, "'umask' called with invalid mode") {
+#if __ANDROID_API__ >= __ANDROID_API_J_MR2__
   return __umask_chk(mode);
+#else
+  return __umask_real(mode);
+#endif  /* __ANDROID_API__ >= __ANDROID_API_J_MR2__ */
 }
-#endif /* __ANDROID_API__ >= __ANDROID_API_J_MR2__ */
 
 #endif /* defined(__BIONIC_FORTIFY) */