From: Mateusz Majewski Date: Wed, 12 Oct 2022 12:21:04 +0000 (+0200) Subject: zlogger: propagate written data length correctly X-Git-Tag: accepted/tizen/unified/20221102.172737~6^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F68%2F282868%2F2;p=platform%2Fkernel%2Flinux-tizen-modules-source.git zlogger: propagate written data length correctly Change-Id: Ib033ac57d6dd327a76d3a56bf4d41ceddee3ac2d --- diff --git a/kernel/zlogger/zlogger.c b/kernel/zlogger/zlogger.c index 32eefbf..1110643 100644 --- a/kernel/zlogger/zlogger.c +++ b/kernel/zlogger/zlogger.c @@ -50,6 +50,8 @@ #define ZLOG_FD_BUFER (2 * ZLOGGER_MB) +#define MAX_BUF_LEN 255 + struct queue { char name[5]; uint16_t front; @@ -501,7 +503,7 @@ static int _zlog_write(const unsigned char prio, const char *tag, const char *ms block->head.offset += (uint16_t)entry_size; block->head.ts = ts; - return (int)entry_size; + return msg_size - 1; } static void endl_to_zero(struct zlog_file *zlog_file_data, size_t len) @@ -538,7 +540,7 @@ static ssize_t partition_write_buffer(struct zlog_file *zlog_file_data, size_t l return -EFAULT; } - cb += strnlen(cb, len - (cb - buffer)); + cb += res; } return 0; } @@ -556,6 +558,9 @@ static ssize_t zlogger_write(struct file *filep, const char __user *buffer, size zlog_file_data = (struct zlog_file *)filep->private_data; + if (len > MAX_BUF_LEN) + len = MAX_BUF_LEN; + if (len >= zlog_file_data->buffer_len && !update_zlog_data_buffer_size(zlog_file_data, len + 1)) { pr_err("update_zlog_data_buffer_size failed\n"); return -ENOMEM;