/*
- * 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.
* 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:
}
std::shared_ptr<LogHandler> createHandler(const Options& options) override;
+
+ private:
+ class WriterFactory;
};
} // namespace folly