diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-04-23 18:18:06 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-04-23 18:18:06 +0900 |
| commit | 1ce6ac0b238b653d9b49a1c9f913d08db2b74c69 (patch) | |
| tree | ce91b4e92d9130e401c0d0b917f9ee0b019e6615 /src/OptionParser.cc | |
| parent | b316b2cec5ac3bc2d584e2545c0b9a32a330cfe1 (diff) | |
Add error handling for sigaction, signal and strdup
Diffstat (limited to 'src/OptionParser.cc')
| -rw-r--r-- | src/OptionParser.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/OptionParser.cc b/src/OptionParser.cc index c1e306da..75d0885f 100644 --- a/src/OptionParser.cc +++ b/src/OptionParser.cc @@ -90,8 +90,14 @@ void putOptions(struct option* longOpts, int* plopt, InputIterator first, if (*first && !(*first)->isHidden()) { #ifdef HAVE_OPTION_CONST_NAME (*longOpts).name = (*first)->getName(); -#else // !HAVE_OPTION_CONST_NAME +#else // !HAVE_OPTION_CONST_NAME (*longOpts).name = strdup((*first)->getName()); + if ((*longOpts).name == nullptr) { + auto errNum = errno; + A2_LOG_ERROR( + fmt("strdup() failed: %s", util::safeStrerror(errNum).c_str())); + exit(EXIT_FAILURE); + } #endif // !HAVE_OPTION_CONST_NAME switch ((*first)->getArgType()) { case OptionHandler::REQ_ARG: |
