Explorar el Código

Fix segmentation fault if RpcMethod::process throws exception

Tatsuhiro Tsujikawa hace 12 años
padre
commit
8d62682202
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  1. 2 1
      src/RpcMethod.cc

+ 2 - 1
src/RpcMethod.cc

@@ -71,7 +71,8 @@ std::unique_ptr<ValueBase> RpcMethod::createErrorResponse
 RpcResponse RpcMethod::execute(RpcRequest req, DownloadEngine* e)
 {
   try {
-    return RpcResponse(0, process(req, e), std::move(req.id));
+    auto r = process(req, e);
+    return RpcResponse(0, std::move(r), std::move(req.id));
   } catch(RecoverableException& ex) {
     A2_LOG_DEBUG_EX(EX_EXCEPTION_CAUGHT, ex);
     return RpcResponse(1, createErrorResponse(ex, req), std::move(req.id));