Change memory space from heap to stack for use instance variables 44/306244/1 accepted/tizen/unified/20240220.115627 accepted/tizen/unified/20240220.144631 accepted/tizen/unified/x/20240221.033404
authorYonggoo Kang <ygace.kang@samsung.com>
Mon, 19 Feb 2024 06:28:12 +0000 (15:28 +0900)
committerYonggoo Kang <ygace.kang@samsung.com>
Mon, 19 Feb 2024 06:28:12 +0000 (15:28 +0900)
Change-Id: Iedd600a4cb57cf365b5391504b7c26a88eab85e7

srcs/server/service.cpp

index 6fc7c14121fcd8d1a022170f0d0b1635c588d805..6a2a3c87e8c5214469efca043df9650a1dd42fb1 100644 (file)
@@ -81,21 +81,20 @@ void Service::Worker(SocketManager::ConnectionID connectionID,
     wauthn_client_data_s *clientData,
     typename T::Options *options)
 {
-    typename T::Callbacks *callbacks = nullptr;
-    callbacks = (typename T::Callbacks*) calloc(1, sizeof(typename T::Callbacks));
-    callbacks->qrcode_callback = &(Request::QRCallback);
-    callbacks->response_callback = &(T::ResponseCallback);
-    //checkParameters(clientData, options, callbacks);
+    typename T::Callbacks callbacks;
+    callbacks.qrcode_callback = &(Request::QRCallback);
+    callbacks.response_callback = &(T::ResponseCallback);
+    //checkParameters(clientData, options, &callbacks);
     if (options->linked_device != nullptr)  // The qrcode_callback should not be called.
     {
         LogDebug("Adjust qrcode_callback to nullptr");
-        callbacks->qrcode_callback = nullptr;
+        callbacks.qrcode_callback = nullptr;
     }
 
-    user_data_s *userData = (user_data_s *) calloc(1, sizeof(user_data_s));
-    userData->service = this;
-    userData->connectionID = connectionID;
-    callbacks->user_data = userData;
+    user_data_s userData;
+    userData.service = this;
+    userData.connectionID = connectionID;
+    callbacks.user_data = &userData;
 
     auto request = std::make_unique<T>();
     int ret = try_catch([&]() -> int {
@@ -103,7 +102,7 @@ void Service::Worker(SocketManager::ConnectionID connectionID,
                                const wauthn_client_data_s *,
                                const typename T::Options *,
                                typename T::Callbacks *
-                              >(request->GetAPI().c_str(), clientData, options, callbacks);
+                              >(request->GetAPI().c_str(), clientData, options, &callbacks);
         return WAUTHN_ERROR_NONE;
     });
     if (ret != WAUTHN_ERROR_NONE)