Signed-off-by: Felix Fietkau <nbd@nbd.name>
blobmsg_parse(&write_policy, 1, &tb, blob_data(msg), blob_len(msg));
if (tb) {
event = blobmsg_get_string(tb);
blobmsg_parse(&write_policy, 1, &tb, blob_data(msg), blob_len(msg));
if (tb) {
event = blobmsg_get_string(tb);
- log_add(event, strlen(event) + 1, SOURCE_SYSLOG);
+ len = strlen(event) + 1;
+ if (len > LOG_LINE_SIZE) {
+ len = LOG_LINE_SIZE;
+ event[len - 1] = 0;
+ }
+
+ log_add(event, len, SOURCE_SYSLOG);
#define LOG_DEFAULT_SOCKET "/dev/log"
#define SYSLOG_PADDING 16
#define LOG_DEFAULT_SOCKET "/dev/log"
#define SYSLOG_PADDING 16
#define KLOG_DEFAULT_PROC "/proc/kmsg"
#define PAD(x) (x % 4) ? (((x) - (x % 4)) + 4) : (x)
#define KLOG_DEFAULT_PROC "/proc/kmsg"
#define PAD(x) (x % 4) ? (((x) - (x % 4)) + 4) : (x)
static void
syslog_handle_fd(struct uloop_fd *fd, unsigned int events)
{
static void
syslog_handle_fd(struct uloop_fd *fd, unsigned int events)
{
- static char buf[MAXLINE];
+ static char buf[LOG_LINE_SIZE];
int len;
while (1) {
char *c;
int len;
while (1) {
char *c;
- len = recv(fd->fd, buf, MAXLINE - 1, 0);
+ len = recv(fd->fd, buf, LOG_LINE_SIZE - 1, 0);
if (len < 0) {
if (errno == EINTR)
continue;
if (len < 0) {
if (errno == EINTR)
continue;
#ifndef __SYSLOG_H
#define __SYSLOG_H
#ifndef __SYSLOG_H
#define __SYSLOG_H
+#define LOG_LINE_SIZE 1024
+
enum {
SOURCE_KLOG = 0,
SOURCE_SYSLOG = 1,
enum {
SOURCE_KLOG = 0,
SOURCE_SYSLOG = 1,