diff --git a/system/trace/trace_dump.c b/system/trace/trace_dump.c index b819b8cd3..b78867a84 100644 --- a/system/trace/trace_dump.c +++ b/system/trace/trace_dump.c @@ -67,7 +67,7 @@ static void note_ioctl(int cmd, unsigned long arg) int trace_dump(FAR FILE *out) { - uint8_t tracedata[UCHAR_MAX]; + uint8_t tracedata[1024]; int ret; int fd; @@ -85,7 +85,12 @@ int trace_dump(FAR FILE *out) while (1) { ret = read(fd, tracedata, sizeof tracedata); - if (ret <= 0) + if (ret < 0 || ret > sizeof(tracedata)) + { + fprintf(stderr, "trace: read error: %d, errno:%d\n", ret, errno); + continue; + } + else if (ret == 0) { break; }