sensord: limit the maximum number of listeners per client 11/151811/1
authorkibak.yoon <kibak.yoon@samsung.com>
Fri, 22 Sep 2017 05:12:17 +0000 (14:12 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Fri, 22 Sep 2017 05:12:17 +0000 (14:12 +0900)
- MAX_LISTENER = 100

Change-Id: Ib736ef66f2c50a9a218244a4bc5a41bca52ef0d3
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
src/client/sensor_internal.cpp

index 22d8840..5a9f042 100644 (file)
@@ -32,6 +32,7 @@
 #include <regex>
 
 #define CONVERT_OPTION_PAUSE_POLICY(option) ((option) ^ 0b11)
+#define MAX_LISTENER 100
 
 using namespace sensor;
 
@@ -238,6 +239,7 @@ API int sensord_connect(sensor_t sensor)
        retvm_if(!manager.connect(), -EIO, "Failed to connect");
        retvm_if(!manager.is_supported(sensor), -EINVAL,
                        "Invalid sensor[%p]", sensor);
+       retvm_if(listeners.size() > MAX_LISTENER, -EPERM, "Exceeded the maximum listener");
 
        sensor::sensor_listener *listener;