util: fix possible buffer overflows 31/173731/2 accepted/tizen/unified/20180327.055752 submit/tizen/20180326.100223
authorMaciej Slodczyk <m.slodczyk2@partner.samsung.com>
Fri, 23 Mar 2018 11:42:49 +0000 (12:42 +0100)
committerMaciej Slodczyk <m.slodczyk2@partner.samsung.com>
Fri, 23 Mar 2018 15:16:07 +0000 (16:16 +0100)
Change-Id: I3f6b411fa03e9301f627e19f36c72546b58a7ab0

src/shared/logprint.c

index 1c2272c..e2e07c1 100644 (file)
@@ -560,7 +560,7 @@ int log_process_log_buffer(const struct logger_entry *entry_raw, log_entry *entr
        //TODO: remove and make log_format_log_line just use raw entry directly
        int i, start = -1, end = -1;
 
-       if (entry_raw->len < 3) {
+       if (entry_raw->len - sizeof(struct logger_entry) < 3) {
                fprintf(stderr, "Entry too small\n");
                return -1;
        }
@@ -829,7 +829,7 @@ char *log_format_log_line(
                        strncat(p, suffixBuf, suffixLen);
                        p += suffixLen;
 
-                       if (*pm == '\n')
+                       if (pm < (entry->message + entry->messageLen) && *pm == '\n')
                                pm++;
                }
        }