Pipe backend handles oversized logs. 76/125976/3
authorMichal Bloch <m.bloch@samsung.com>
Wed, 12 Apr 2017 19:54:01 +0000 (21:54 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 20 Apr 2017 11:14:24 +0000 (13:14 +0200)
Change-Id: Iea2976260333ad6fcf2154625e223c88764b8fd4
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
src/logger/logger.c

index 1f6b95a..08f03f6 100644 (file)
@@ -1405,7 +1405,7 @@ static int service_writer_pipe(struct logger* server, struct writer* wr, struct
 
                struct logger_entry * entry = (struct logger_entry*)wr->buffer;
                while ((wr->readed >= sizeof(entry->len)) && (entry->len <= wr->readed)) {
-                       if (entry->len < sizeof(struct logger_entry))
+                       if (entry->len < sizeof(struct logger_entry) || entry->len > LOG_MAX_SIZE)
                                return -EINVAL;
                        add_recv_timestamp(entry);
                        buffer_append(server, entry, server->buffers[wr->buf_ptr->id], server->buffers[wr->buf_ptr->id]->readers);