Fix copyright lines
[folly.git] / folly / experimental / logging / FileHandlerFactory.h
index 20142be5141ec4cec419c81d04e74938bf38492c..75feebf3df1caf1edc77e7cd1ca679891e177219 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004-present Facebook, Inc.
+ * Copyright 2017-present Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,8 +23,13 @@ namespace folly {
  * FileHandlerFactory is a LogHandlerFactory that constructs log handlers
  * that write to a file.
  *
- * It can construct handlers that use either ImmediateFileWriter or
- * AsyncFileWriter.
+ * Note that FileHandlerFactory allows opening and appending to arbitrary files
+ * based on the handler options.  This may make it unsafe to use
+ * FileHandlerFactory in some contexts: for instance, a setuid binary should
+ * generally avoid registering the FileHandlerFactory if they allow log
+ * handlers to be configured via command line parameters, since otherwise this
+ * may allow non-root users to append to files that they otherwise would not
+ * have write permissions for.
  */
 class FileHandlerFactory : public LogHandlerFactory {
  public:
@@ -33,6 +38,9 @@ class FileHandlerFactory : public LogHandlerFactory {
   }
 
   std::shared_ptr<LogHandler> createHandler(const Options& options) override;
+
+ private:
+  class WriterFactory;
 };
 
 } // namespace folly