mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Check the return value from pipe(2)
Starting from GCC 10 not checking this will produce a warning.
This commit is contained in:
@@ -66,7 +66,9 @@ StdIoCapture::StdIoCapture(boost::asio::io_context& io_context,
|
||||
original_fd_copy(dup(file_descriptor)) {
|
||||
// We'll use the second element of these two file descriptors to reopen
|
||||
// `file_descriptor`, and the first one to read the captured contents from
|
||||
::pipe(pipe_fd);
|
||||
if (::pipe(pipe_fd) != 0) {
|
||||
throw std::system_error(errno, std::system_category());
|
||||
}
|
||||
|
||||
// We've already created a copy of the original file descriptor, so we can
|
||||
// reopen it using the newly created pipe
|
||||
|
||||
@@ -45,6 +45,8 @@ class StdIoCapture {
|
||||
*
|
||||
* @param io_context The IO context to create the captured pipe stream on.
|
||||
* @param file_descriptor The file descriptor to remap.
|
||||
*
|
||||
* @throw std::system_error If the pipe could not be created.
|
||||
*/
|
||||
StdIoCapture(boost::asio::io_context& io_context, int file_descriptor);
|
||||
|
||||
@@ -111,6 +113,7 @@ class GroupBridge {
|
||||
* `create_logger_prefix()` function in `./group.cpp`.
|
||||
*
|
||||
* @throw boost::system::system_error If we can't listen on the socket.
|
||||
* @throw std::system_error If the pipe could not be created.
|
||||
*
|
||||
* @note Creating an `GroupBridge` instance has the side effect that the
|
||||
* STDOUT and STDERR streams of the current process will be redirected to
|
||||
|
||||
@@ -78,6 +78,11 @@ int __cdecl main(int argc, char* argv[]) {
|
||||
<< std::endl;
|
||||
std::cerr << error.what() << std::endl;
|
||||
|
||||
return 0;
|
||||
} catch (const std::system_error& error) {
|
||||
std::cerr << "Could not create pipe:" << std::endl;
|
||||
std::cerr << error.what() << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user