Brad Bishop | 1a4b7ee | 2018-12-16 17:11:34 -0800 | [diff] [blame^] | 1 | From 38c5343f84799fc5041575f3ec808f7476b6eea3 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Mon, 16 Apr 2018 14:33:35 -0700 |
| 4 | Subject: [PATCH] Catch std::ifstream::failure by reference |
| 5 | |
| 6 | Fixes |
| 7 | error: catching polymorphic type 'class std::ios_base::failure' by value |
| 8 | [-Werror=catch-value=] |
| 9 | } catch (std::ofstream::failure) { |
| 10 | ^~~~~~~ |
| 11 | |
| 12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 13 | |
| 14 | --- |
| 15 | src/base/conf.cc | 4 ++-- |
| 16 | src/dtm/dtmnd/dtm_main.cc | 2 +- |
| 17 | src/dtm/dtmnd/multicast.cc | 2 +- |
| 18 | 3 files changed, 4 insertions(+), 4 deletions(-) |
| 19 | |
| 20 | diff --git a/src/base/conf.cc b/src/base/conf.cc |
| 21 | index d5755a1..4820357 100644 |
| 22 | --- a/src/base/conf.cc |
| 23 | +++ b/src/base/conf.cc |
| 24 | @@ -189,7 +189,7 @@ std::string Conf::ReadFile(const std::string& path_name, |
| 25 | try { |
| 26 | str.open(path_name); |
| 27 | str >> contents; |
| 28 | - } catch (std::ifstream::failure) { |
| 29 | + } catch (std::ifstream::failure& e) { |
| 30 | contents.clear(); |
| 31 | } |
| 32 | return (str.fail() || contents.empty()) ? default_contents : contents; |
| 33 | @@ -203,7 +203,7 @@ void Conf::WriteFileAtomically(const std::string& path_name, |
| 34 | try { |
| 35 | str.open(tmp_file, std::ofstream::out | std::ofstream::trunc); |
| 36 | str << contents << std::endl; |
| 37 | - } catch (std::ofstream::failure) { |
| 38 | + } catch (std::ofstream::failure& e) { |
| 39 | success = false; |
| 40 | } |
| 41 | str.close(); |
| 42 | diff --git a/src/dtm/dtmnd/dtm_main.cc b/src/dtm/dtmnd/dtm_main.cc |
| 43 | index 585e11e..5cf6ad7 100644 |
| 44 | --- a/src/dtm/dtmnd/dtm_main.cc |
| 45 | +++ b/src/dtm/dtmnd/dtm_main.cc |
| 46 | @@ -367,7 +367,7 @@ void UpdateNodeIdFile(DTM_INTERNODE_CB *cb) { |
| 47 | try { |
| 48 | str.open(PKGLOCALSTATEDIR "/node_id", std::ofstream::out); |
| 49 | str << std::hex << node_id << std::endl; |
| 50 | - } catch (std::ofstream::failure) { |
| 51 | + } catch (std::ofstream::failure& e) { |
| 52 | } |
| 53 | str.close(); |
| 54 | } |
| 55 | diff --git a/src/dtm/dtmnd/multicast.cc b/src/dtm/dtmnd/multicast.cc |
| 56 | index cadc002..7c25fea 100644 |
| 57 | --- a/src/dtm/dtmnd/multicast.cc |
| 58 | +++ b/src/dtm/dtmnd/multicast.cc |
| 59 | @@ -199,7 +199,7 @@ bool Multicast::GetPeersFromFile(const std::string &path_name) { |
| 60 | } |
| 61 | } |
| 62 | } |
| 63 | - } catch (std::ifstream::failure) { |
| 64 | + } catch (std::ifstream::failure& e) { |
| 65 | LOG_ER("Caught std::ifstream::failure when reading file '%s', peers=%zu", |
| 66 | path_name.c_str(), static_cast<size_t>(peers_.size())); |
| 67 | peers_.clear(); |