Files
llvm-project/clang-tools-extra/test/clang-tidy/android-cloexec-accept.cpp
Chih-Hung Hsieh ae3527e6bb [clang-tidy] Add a close-on-exec check on accept() in Android module.
Summary:
accept() is better to be replaced by accept4() with SOCK_CLOEXEC
flag to avoid file descriptor leakage.

Differential Revision: https://reviews.llvm.org/D35362

llvm-svn: 311024
2017-08-16 17:18:16 +00:00

29 lines
698 B
C++

// RUN: %check_clang_tidy %s android-cloexec-accept %t
struct sockaddr {};
typedef int socklen_t;
#define NULL 0
extern "C" int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
void f() {
accept(0, NULL, NULL);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer accept4() to accept() because accept4() allows SOCK_CLOEXEC [android-cloexec-accept]
// CHECK-FIXES: accept4(0, NULL, NULL, SOCK_CLOEXEC);
}
namespace i {
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
void g() {
accept(0, NULL, NULL);
}
} // namespace i
class C {
public:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
void h() {
accept(0, NULL, NULL);
}
};