diff --git a/lib/secDetector_sdk.cpp b/lib/secDetector_sdk.cpp index 33e5bef081ac7d732916e3a90c8bd8ab5408d2c8..65efceb6e67bc64931915caa9c431c6de428be8b 100644 --- a/lib/secDetector_sdk.cpp +++ b/lib/secDetector_sdk.cpp @@ -104,16 +104,16 @@ void secUnsub(const int topic, void *reader) } } -const char *secReadFrom(void *reader) +void secReadFrom(void *reader, char *data, int data_len) { - string msg; + string msg(""); Readmao::iterator iter = g_reader_map.find(reader); if (iter != g_reader_map.end()) { msg = g_client.ReadFrom(iter->second); } - return msg.c_str(); + strncpy(data, msg.c_str(), data_len - 1); } #ifdef __cplusplus diff --git a/lib/secDetector_sdk.h b/lib/secDetector_sdk.h index cf67a8919969912cb57836022a517d19c83548c2..d5935b1d4099f8826ef2248b24a3caead33c5b96 100644 --- a/lib/secDetector_sdk.h +++ b/lib/secDetector_sdk.h @@ -50,6 +50,6 @@ void *secSub(const int topic); void secUnsub(const int topic, void *reader); -const char *secReadFrom(void *reader) +void secReadFrom(void *reader, char *data, int data_len); #endif