[PATCH] D62049: [clang-tidy] Add a close-on-exec check on pipe2() in Android module.

Dmitri Gribenko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 4 01:50:22 PDT 2019


gribozavr added inline comments.


================
Comment at: clang-tools-extra/test/clang-tidy/android-cloexec-pipe2.cpp:20
+  pipe2(pipefd, O_NONBLOCK);
+  // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: 'pipe2' should use O_CLOEXEC where possible [android-cloexec-pipe2]
+  // CHECK-FIXES: pipe2(pipefd, O_NONBLOCK | O_CLOEXEC);
----------------
jcai19 wrote:
> gribozavr wrote:
> > Same comment about the message as in D61967 -- the message should briefly explain why the user should make this change. Users tend to ignore warnings they don't understand.
> > 
> > "pipe2 should be called with O_CLOEXEC to avoid leaking file descriptors to child processes"
> It appeared to me that there was no easy way to change the warning message due to the way insertMacroFlag is implemented (called in  CloexecPipe2Check::check(...) to add O_CLOEXEC flag when necessary). The function always issue a warning in the format of "%0 should use %1 where possible". So unless we parameterize the warning string (which could be solved by a different code change), we might end up implementing a similar function with different warning message, which creates extra work if we need to modify insertMacroFlag in the future. I am new to Clang so please let me know if there is a better way to udpate the warning message.
I don't see an issue with parameterizing insertMacroFlag -- the current message that it produces is not descriptive enough anyway, users tend to ignore such messages.


================
Comment at: clang-tools-extra/test/clang-tidy/android-cloexec-pipe2.cpp:17
+
+void warning1() {
+  int pipefd[2];
----------------
`warning1`, `warning2` is better than `a` and `b`, but we can do even better.

`warningForPipeCall`
`warningForPipeCallInMacroArgument`

Similarly in the rest of the patch.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62049/new/

https://reviews.llvm.org/D62049





More information about the cfe-commits mailing list