Heap corruption fixed 34/191934/1
authorSudipto <sudipto.bal@samsung.com>
Thu, 25 Oct 2018 16:46:53 +0000 (22:16 +0530)
committerSudipto <sudipto.bal@samsung.com>
Thu, 25 Oct 2018 16:46:53 +0000 (22:16 +0530)
Change-Id: I4b0f613ddc9bd7d516f8193733d4d089df2bbb79
Signed-off-by: Sudipto <sudipto.bal@samsung.com>
src/client/sensor_listener.cpp
src/server/server_channel_handler.cpp
src/shared/command_types.h

index f20c3d1b2d3a2a9db12e4b458dfe10b555eb6b17..96a70764d79b2eeb955f32387557ea250d4e2d91 100644 (file)
@@ -399,7 +399,7 @@ int sensor_listener::set_attribute(int attribute, const char *value, int len)
        buf->listener_id = m_id;
        buf->attribute = attribute;
 
-       memcpy(buf->value, value, len);
+       memcpy(&buf->value, value, len);
        buf->len = len;
 
        msg.enclose((char *)buf, size);
index 149c32e275c7c4fbfa1dedb7ebb8747398be92b8..a62b75bd9696565788e2928ee58d8118e59fa80f 100644 (file)
@@ -265,7 +265,7 @@ int server_channel_handler::listener_attr_str(channel *ch, message &msg)
                return -EACCES;
        }
 
-       int ret = m_listeners[id]->set_attribute(buf->attribute, buf->value, buf->len);
+       int ret = m_listeners[id]->set_attribute(buf->attribute, (char *)&buf->value, buf->len);
        if (ret < 0) {
                delete [] buf;
                return ret;
index d28107da783fccbaaf2cff6034b4dee3e499e4bf..34cb5fc1f1b823ca5164ff8d5006f53d5e6fb79f 100644 (file)
@@ -88,7 +88,7 @@ typedef struct  {
        int listener_id;
        int attribute;
        int len;
-       char *value;
+       char value[0];
 } cmd_listener_attr_str_t;
 
 typedef struct {